[英]Use Jenkins variable in Dockerfile command
我是 Docker 和 Jenkins 的新手。我必须在 jenkins 中构建和部署 Nest Js 应用程序。当我运行 Jenkins 作业时,我必须 select 'DEPLOY_PROFILE' 等于 'dev' 和 'qa' 如下
这是我的Dockerfile,
FROM node:16-alpine
WORKDIR /app
ADD package.json /app/package.json
RUN npm config set registry http://registry.npmjs.org
RUN npm install
ADD . /app
EXPOSE 3000
CMD ["npm", "run", "start"]
我需要将等于“dev”或“qa”的“DEPLOY_PROFILE”变量传递给 Dockerfile。然后最终的 docker 命令应该类似于npm run start:dev
或npm run start:qa
我试过使用
CMD ["npm", "run", "start", `:${DEPLOY_PROFILE}`]
和
CMD ["npm", "run", "start", `:${env.DEPLOY_PROFILE}`]
但没有什么能给我带来好运。 任何帮助都将不胜感激!
您可以为此使用环境变量。 在您的 dockerfile 中,声明一个参数(传递到 docker 构建中)和一个环境变量,如下所示:
ARG DEPLOY_PROFILE
ENV PROFILE=${deploy_profile}
然后像这样使用环境变量:
CMD npm run start $PROFILE
然后像这样调用 buildah(或者你正在使用的任何东西):
buildah bud --format=docker --build-arg deploy_profile="$DEPLOY_PROFILE"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.