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