簡體   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