Я думаю, пакет utilities@0.1.9
это ваш личный пакет? В таком случае может показаться, что ваш токен аутентификации либо не используется, либо по какой-то причине не имеет доступа к этому пакету.
Вы можете попытаться записать файл ~/.npmrc
вместо использования набора конфигурации, это просто случай использования:
RUN echo -e "//private.repo/:_authToken=... > ~/.npmrc
Это приведет к тому, что ваш пользователь-докер затем аутентифицируется с использованием этого токена в указанном реестре. Так мы устанавливаем токены авторизации для npm.
Кстати, вы можете не использовать несколько команд RUN одну за другой. Это приводит к созданию нового слоя изображения для каждой отдельной команды и может значительно увеличить размер вашего контейнера. Попробуйте использовать && \
в конце ваших команд и затем поместить следующую команду в новую строку без бита RUN
. Например:
FROM keymetrics/pm2:latest-alpine
RUN mkdir -p /app
WORKDIR /app
COPY package.json ./
COPY .npmrc ./
RUN npm config set registry http://private.repo/:_authToken=$AUTH_TOKEN && \
npm install utilities@0.1.9 && \
apk update && apk add yarn python g++ make && rm -rf /var/cache/apk/* && \
set NODE_ENV=production && \
npm config set registry https://registry.npmjs.org/ && \
npm install
COPY . /app
RUN ls -al -R
EXPOSE 51967
CMD [ "pm2-runtime", "start", "pm2.json" ]
Он должен быть таким же читабельным, но конечное изображение должно быть меньше и потенциально немного быстрее для сборки.