gpt4 book ai didi

javascript - React 应用程序具有暂存环境并在 AWS Elastic BeanStalk 上使用 Docker 进行部署

转载 作者:行者123 更新时间:2023-11-28 03:14:29 24 4
gpt4 key购买 nike

我正在开发由 create-react-app 创建的 React 应用程序。我在 AWS Elastic BeanStalk 上有两个环境:临时环境和生产环境。我正在通过 Docker 部署我的应用程序。我正在使用 CircleCI 进行自动化部署。

我的问题是我想在构建 React 应用程序时更改端点 url。

我使用跨环境来设置变量REACT_APP_API_HOST,但我必须运行命令build:staging来构建它。

我不知道如何使用这个 docker 来做到这一点。

Docker 文件

FROM node:12

WORKDIR /app
COPY . /app

RUN npm install
RUN npm run build

RUN npm install -g serve

EXPOSE 3000

ENTRYPOINT ["serve", "-l", "3000", "-s", "build", "-d"]

以及 package.json 文件的脚本部分

"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"build:staging": "cross-env REACT_APP_API_HOST=staging react-scripts build",
"build:prod": "cross-env REACT_APP_API_HOST=production react-scripts build"
},

最佳答案

经过长时间的研发,我和 friend 找到的答案是在将其部署到 Elastic Beanstalk 之前运行一个中间脚本。

buildDocker.sh

#!/bin/bash
branch_name=$(git symbolic-ref --short -q HEAD)

if [ "$branch_name" == "develop" ]; then
result_sed=$(sed 's/RUN npm run build/RUN npm run build:staging/g' Dockerfile)
echo "$result_sed" > Dockerfile
elif [ "$branch_name" == "master" ]; then
result_sed=$(sed 's/RUN npm run build/RUN npm run build:prod/g' Dockerfile)
echo "$result_sed" > Dockerfile
fi

关于javascript - React 应用程序具有暂存环境并在 AWS Elastic BeanStalk 上使用 Docker 进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59757835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com