无法通过docker build安装Thread软件包
我正试图通过将所有当前的包都安装在Thread.lock中来加快docker的速度。我认为我的纱线安装不正确,它在其他地方工作 dockerfile的相关部分:无法通过docker build安装Thread软件包,docker,docker-compose,yarn-lock.json,Docker,Docker Compose,Yarn Lock.json,我正试图通过将所有当前的包都安装在Thread.lock中来加快docker的速度。我认为我的纱线安装不正确,它在其他地方工作 dockerfile的相关部分: # Create a dir WORKDIR /(WORKDIR) # Time to install all our dependencies COPY package.json /(WORKDIR)/package.json COPY yarn.lock /(WORKDIR)/yarn.lock # Need the execut
# Create a dir
WORKDIR /(WORKDIR)
# Time to install all our dependencies
COPY package.json /(WORKDIR)/package.json
COPY yarn.lock /(WORKDIR)/yarn.lock
# Need the executables to be in the path
ENV PATH /(WORKDIR)/node_modules/.bin:$PATH
RUN yarn check --verify-tree || yarn install --frozen-lockfile
我想我的最后一行是不正确的。它安装在某处,但不在包本身上?这或缓存可能是一个问题。如果我启动图像,我会发现
纱线检查的输出——验证树
仍然是图像的当前状态。只需运行纱线
,并确保在纱线
之后复制代码库
FROM node:12.14.0-alpine3.11
ENV NODE_ENV=production
WORKDIR /app
COPY package.json ./
COPY yarn.lock ./
RUN yarn
COPY src ./
我在我的机器上测试它,你可以看到我是否更改了纱线.锁
。如果我不更改我的纱线,请锁定
$ docker build -t demo .
Step 1/6 : FROM node:12.14.0-alpine3.11
---> 1cbcaddb8074
Step 2/6 : ENV NODE_ENV=production
---> Using cache
---> dc7f1a2f7d90
Step 3/6 : WORKDIR /app
---> Using cache
---> eec9363713a5
Step 4/6 : COPY package.json ./
---> Using cache
---> fde6cf7bb577
Step 5/6 : COPY yarn.lock ./
---> 6a1369622d79
Step 6/6 : RUN yarn
---> Running in ff6433969bea
yarn install v1.21.1
[1/4] Resolving packages...
[2/4] Fetching packages...
warning sha.js@2.4.11: Invalid bin entry for "sha.js" (in "sha.js").
warning url-loader@1.1.2: Invalid bin field for "url-loader".
info fsevents@1.2.9: The platform "linux" is incompatible with this module.
info "fsevents@1.2.9" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning " > styled-components@5.0.1" has unmet peer dependency "react-is@>= 16.8.0".
[4/4] Building fresh packages...
Done in 35.97s.
Removing intermediate container ff6433969bea
---> 8dcd2124289d
Successfully built 8dcd2124289d
$docker build -t demo .
Step 1/6 : FROM node:12.14.0-alpine3.11
---> 1cbcaddb8074
Step 2/6 : ENV NODE_ENV=production
---> Using cache
---> dc7f1a2f7d90
Step 3/6 : WORKDIR /app
---> Using cache
---> eec9363713a5
Step 4/6 : COPY package.json ./
---> Using cache
---> fde6cf7bb577
Step 5/6 : COPY yarn.lock ./
---> Using cache
---> 6a1369622d79
Step 6/6 : RUN yarn
---> Using cache
---> 8dcd2124289d
Step 7/7 : COPY src ./
---> 13474b882e11
哦,这是一个输入错误。所以当使用COPY时,使用src和?我在docker文档上看不到明确的答案,可以复制。或src。关键是,如果在安装库之前复制所有代码,则不会缓存这些库。因为您提到它是Dockerfile的一部分,所以我猜您在安装之前复制了代码库。您是如何运行映像的?环顾四周时看到了什么?