当前位置: 首页 > 知识库问答 >
问题:

在docker中运行npm更新,而不使用特定更新的缓存

梁烨
2023-03-14

背景:

    < li >我正在使用< code>npm和< code>docker在< code>node.js中编写代码。我试图让我的docker文件在构建时使用缓存,这样不会花太长时间。 < li >我们有一个“通用”存储库,用于保存在各种存储库中使用的逻辑,并通过npm软件包进行传播。

问题是:

我希望docker文件不要使用我的“通用”包上的缓存。

Docker文件:

FROM node:12-alpine as X

RUN npm i npm@latest -g
RUN mkdir /app && chown node:node /app
WORKDIR /app

RUN apk add --no-cache python3 make g++ tini \
    && apk add --update tzdata

USER node
COPY package*.json ./
COPY .npmrc .npmrc
RUN npm install --no-optional && npm cache clean --force
ENV PATH /app/node_modules/.bin:$PATH
COPY . .

package.json有这样一行:

"dependencies": {
  "@myorg/myorg-common-repo": "~1.0.13",

我尝试过在不同的地方添加这些行,但似乎没有任何效果:

  1. 运行 npm 卸载 @myorg/myorg-common-repo

关于如何让 docker 构建而不是在 @myorg/myorg-common-repo 上使用缓存的任何想法?

共有1个答案

郜玉石
2023-03-14

所以我终于用这个答案解决了这个问题:

我们要做的是使Docker文件中特定块的缓存无效,然后运行我们的更新命令。这是通过向命令(CLI或Makefile)添加构建参数来完成的,如下所示:

docker-compose -f docker-compose-dev.yml build --build-arg CACHEBUST=0

然后将这个额外的块添加到 Docker 文件中:

ARG CACHEBUST=1 
USER node
RUN npm update @myorg/myorg-common-repo

这正是我们想要的。< br > < code > ARG CACHEBUST = 1 使缓存无效,并且< code>npm update命令在没有缓存的情况下运行。

 类似资料:
  • 问题内容: 我正在将SQLAlchemy与python结合使用,并且我想更新等于此查询的表中的特定行: 我通过sql alchemy编写了此代码,但无法正常工作: 返回此错误: 我该怎么做? 问题答案: 通常,您不使用,而是设置属性:

  • 我想使用DynamoDBMapper只更新项目的特定属性。例如,我有一个带有属性的用户表。,id,name,地址。 我想只更新地址属性,而不是其他字段(选择性更新)。 我可以使用UpdateItemSpec找到一个示例,但在DynamoDBMapper中找不到。使用UpdateItemSpec,我可以使用withUpdateExpression()定义更新表达式。更多细节可以在这里找到。 是否有任

  • 一、简介 当对PHPSSO进行修改后,执行此操作。 二、功能演示 更新应用列表缓存。如下图所示:

  • 问题内容: 我一直在尝试更新特定行已有一段时间了,看来有两种方法可以做到这一点。根据我的阅读和尝试,你可以使用: 方法 或者: 方法。 (让我知道这是否不正确,因为我是android新手,还是SQL新手。) 因此,让我了解我的实际代码。 我正在努力做到这一点: 更新主键()等于1的Field1,Field2和Field3。 Eclipse在“更新”一词的正下方给了我一条红线,并给出了以下解释: S