![](/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.