繁体   English   中英

在 Dockerfile 命令中使用 Jenkins 变量

[英]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:devnpm 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM