![](/img/trans.png)
[英]Publishing create-react-app to Azure getting git checkout error when running pipeline how can I fix this?
[英]How dockerize create-react-app can access to azure release pipeline variables in docker environment
這是問題的完整流程
1) Azure 構建管道使用以下DockerFile
創建一個工件(docker 鏡像)
FROM hub.docker.prod.private.com/library/node:10.16-alpine as buildImage
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ENV PATH /app/node_modules/.bin:$PATH
ENV REACT_APP_SERVER_URL=${REACT_APP_SERVER_URL}
ENV REACT_APP_AD_APP_ID=${REACT_APP_AD_APP_ID}
ENV REACT_APP_REDIRECT_URL=${REACT_APP_REDIRECT_URL}
ENV REACT_APP_AUTHORITY=${REACT_APP_AUTHORITY}
COPY package.json /usr/src/app/
RUN npm install
RUN npm install react-scripts@3.0.1 -g
COPY . /usr/src/app
RUN npm run build
FROM hub.docker.prod.private.com/library/nginx:1.15.12-alpine
COPY --from=buildImage /usr/src/app/build /usr/share/nginx/html
RUN rm /etc/nginx/conf.d/default.conf
COPY nginx/nginx.conf /etc/nginx/conf.d
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
2) 並將 docker 鏡像推送到 Azure 容器注冊表 ( ACR
)。
3) 多階段發布管道從ACR
中提取圖像並部署在 azure 應用服務上( QA -> Stage -> Prod
)。
4) 發布管道正在使用發布管道中定義的變量組中的變量值,我期望這些變量應該在 docker 環境中可用,以便它替換DockerFile
中的ENV
變量占位符。
但是在部署之后,應用程序內部使用的所有環境變量仍然未定義,如果可以按照我上面提到的方式使用 docker 環境,請您糾正我。
但是在部署之后,應用程序內部使用的所有環境變量仍然未定義,如果可以按照我上面提到的方式使用 docker 環境,請您糾正我。
上面提到的方法是行不通的。 在部署過程中,Release Variables不會自動將原始值替換為 DockerFile 中的stage-scope
發布變量。
作為解決方法,您可以嘗試從Replace Tokens 中Replace Tokens task
Replace Tokens 任務,在部署任務之前的三個階段中添加此任務。 所以你的三個階段的任務順序應該類似於: Replace Tokens task
以在 DockerFile 中設置發布變量=>docker build and push=>deploy 任務。
要使用此任務,您的 Dockerfile 應該是:
ENV REACT_APP_SERVER_URL=#{REACT_APP_SERVER_URL}#
ENV REACT_APP_AD_APP_ID=#{REACT_APP_AD_APP_ID}#
ENV REACT_APP_REDIRECT_URL=#{REACT_APP_REDIRECT_URL}#
ENV REACT_APP_AUTHORITY=#{REACT_APP_AUTHORITY}#
有關此任務如何工作的詳細信息,請查看我的另一個問題。
如果您不想對 Dockerfile 本身進行任何更改,另一種方法是在命令行 arguments 中傳遞該值。您可以查看此類似帖子以獲取更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.