【发布时间】:2020-11-01 09:43:10
【问题描述】:
我有一个使用 Create-React-App 构建的 React 应用程序。我已经使用 GitHub Actions 设置了一个部署管道,因此当我提交分支“预生产”时,它将触发 Docker 构建,然后将构建放到 AWS。
这是 GitHub Actions .yml 的一部分:
- name: Build and push image to Amazon ECR
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
ECR_REPOSITORY: application
IMAGE_TAG: latest
run: |
# Build a docker container and
# push it to ECR so that it can
# be deployed to ECS.
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG"
然后在我的 ECS 服务中,我运行指向此构建的任务,在该容器中,我传入环境变量,如下所示:
然后我在控制台中注销应用程序中的 NODE_ENV,由于某种原因一直说 production 而不是 development。
console.log(process.env.NODE_ENV);
【问题讨论】:
-
你之前把这个值作为生产放在哪里了?似乎有些东西压倒了它
-
类似于 Dockerfile 中具有更高优先级的硬编码环境之类的东西?因为一般来说您访问 env var 的方式是正确的。
-
@ChrisWilliams 我没有在任何地方将其设置为生产,我在想'npm run build' 为我将它设置为生产?但我不确定。
-
@Marc Dockerfile 中有这一行,但我不确定这与它有什么关系
ENV PATH /usr/src/app/node_modules/.bin:$PATH除了没有提到ENV -
对不起。那就帮不了你了。
标签: reactjs amazon-web-services docker dockerfile amazon-ecs