Невозможно установить пакеты пряжи через docker build - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь ускорить раскрутку docker, если все текущие пакеты в yarn.lock уже установлены в образ. Я думаю, что устанавливаю пряжу неправильно, что она работает где-то еще?

соответствующая часть 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 executables to be in the path
ENV PATH /(WORKDIR)/node_modules/.bin:$PATH
RUN yarn check --verify-tree || yarn install --frozen-lockfile

Я думаю, что моя последняя строка неверна. Он где-то устанавливается, а не на сам пакет? Либо это, либо кеширование может быть проблемой. Если я запустил изображение, я обнаружил, что вывод yarn check --verify-tree по-прежнему является текущим состоянием изображения.

Ответы [ 2 ]

0 голосов
/ 29 мая 2020

Просто RUN yarn и убедитесь, что COPY кодовая база после yarn.

FROM        node:12.14.0-alpine3.11

ENV         NODE_ENV=production
WORKDIR     /app

COPY        package.json ./
COPY        yarn.lock ./
RUN         yarn

COPY        src ./

Я тестирую его на своей машине, вы можете увидеть, изменил ли я yarn.lock. И если я не поменяю свой yarn.lock

$ 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
0 голосов
/ 29 мая 2020

Здесь - хорошая запись в блоге для выполнения аналогичной задачи.

...