在Dockerfile命令中使用Jenkins变量

w9apscun  于 2023-01-16  发布在  Jenkins
关注(0)|答案(1)|浏览(324)

我是Docker和Jenkins的新手。我必须在Jenkins中构建和部署Nest JS应用程序。当我运行Jenkins作业时,我必须选择“DEPLOY_PROFILE”,它等于“dev”和“qa”,如下所示。

这是我的文档

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}`]

但没有什么给我这样的运气。任何帮助都将不胜感激!

m528fe3b

m528fe3b1#

你可以使用一个环境变量,在你的docker文件中,声明一个参数(传入docker build)和一个环境变量,如下所示:

ARG DEPLOY_PROFILE
ENV PROFILE=${deploy_profile}

然后按如下方式使用环境变量:

CMD npm run start $PROFILE

然后像这样调用buildah(或者你正在使用的任何东西):

buildah bud --format=docker --build-arg deploy_profile="$DEPLOY_PROFILE"

相关问题