我正在尝试构建一个包含私有节点包的 docker 容器。我已关注本指南 https://www.alexandraulsh.com/2019/02/24/docker-build-secrets-and-npmrc/使用密钥安全地引用 npmrc 文件来安装依赖项。当使用如下命令直接构建图像时,我可以让它工作:docker build --secret id=npm,src=$HOME/.npmrc .
但我无法将此与 docker compose 一起使用。当运行一个docker compose build
它的行为就像没有 npmrc 文件一样,并在尝试下载依赖项时给我一个 401 错误。
我在下面提供了 Dockerfile 和 docker-compose.yml 的精简版本。
Dockerfile
# syntax = docker/dockerfile:1.2
FROM node:14.17.1
COPY . .
RUN --mount=type=secret,id=npm,target=/root/.npmrc yarn --frozen-lockfile --production
EXPOSE 3000
CMD [ "npm", "start" ]
docker-compose.yml
version: '3.7'
services:
example:
build: packages/example
ports:
- "3000:3000"
secrets:
- npm
secrets:
npm:
file: ${HOME}/.npmrc
Since docker-compose v2.5.0 https://github.com/docker/compose/releases/tag/v2.5.0现在这是可能的。
Dockerfile:
# syntax=docker/dockerfile:1.2
RUN --mount=type=secret,id=mysecret,target=/root/mysecret cat /root/mysecret
docker-compose.yml
services:
my-app:
build:
context: .
secrets:
- mysecret
secrets:
mysecret:
file: ~/.npmrc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)