Arp*_*dav 2 node.js typescript docker
我在 github 上托管了一个 npm 包。在本地机器上工作时工作正常。但它不会在 docker 构建过程中安装。
Dockerfile
FROM node:14-alpine as base
EXPOSE 8080
ARG LIB_GITHUB_TOKEN
ENV NODE_ENV=production \
LIB_GITHUB_TOKEN="${LIB_GITHUB_TOKEN}"
WORKDIR /home/node/app
RUN chown -R node:node /home/node/app
COPY --chown=node:node package.json package-lock*.json tsconfig.json .npmrc ./
RUN npm install --only=development
RUN ls -a **every pkgs installed except gihub pvt pkg**
RUN cd node_modules/ && ls
RUN npm run build
Run Code Online (Sandbox Code Playgroud)
.npmrc 文件
registry=https://registry.npmjs.org/
@github_user:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=${LIB_GITHUB_TOKEN}
Run Code Online (Sandbox Code Playgroud)
除了我的 GitHub 私有包之外,所有包都已安装。
与 docker-compose 一样可以正常工作。
如果我添加npm ci --only=production到 dockerfile. 它给 -
npm ERR! code E401
npm ERR! Unable to authenticate, need: Basic realm="GitHub Package Registry"
Run Code Online (Sandbox Code Playgroud)
小智 8
我尝试使用环境变量,.npmrc但遇到了与您遇到的相同的 401 错误。我没有将其复制.npmrc到图像中,而是将其添加到.dockerignore
然后在你的 Dockerfile 中执行此操作
ARG github_token
ENV GITHUB_TOKEN=$github_token
RUN echo registry=https://registry.npmjs.org/ >> ~/.npmrc
RUN echo @github_user:registry=https://npm.pkg.github.com/ >> ~/.npmrc
RUN echo //npm.pkg.github.com/:_authToken=$GITHUB_TOKEN >> ~/.npmrc
Run Code Online (Sandbox Code Playgroud)
并构建:
docker build . --build-arg github_token=${GITHUB_TOKEN}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3059 次 |
| 最近记录: |