nginx 如何让npm运行React应用程序的构建,包括我的环境变量?

w46czmvw  于 2022-12-03  发布在  Nginx
关注(0)|答案(2)|浏览(168)

我试图部署我的应用程序让公众看到,但我被这一步卡住了。首先,我使用docker容器化了我的React应用程序,并通过--env-file选项为docker run传递我的变量。当我使用CMD [“npm”,“start”]运行应用程序时,这工作得很好,但当我试图为生产更改dockerfile时,该站点是可访问的,但是站点中依赖于环境变量的部分出现故障。
这是我使用的docker文件:

FROM node:latest as build-stage
WORKDIR /app
ADD . .
RUN npm install
RUN npm run build

FROM nginx:latest
COPY --from=build-stage /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

我不确定问题是否出在nginx上,或者我只是误解了React中的构建过程以及环境变量是如何注入其中的。

ajsxfq5m

ajsxfq5m1#

映像是一个容器(以node:latest开头),但该容器不继承您的环境变量。您可以使用RUN bash命令或使用ARG/ENV在容器中设置变量。您将需要设置应用运行所需的任何变量,因为它们将被捆绑到生成的构建中。您也可以在运行容器时设置环境变量,在这种情况下是在nginx服务器启动时。

dvtswwa3

dvtswwa32#

这对我很有效。env文件名-〉.e
运行节点_ENV=qa npm运行构建

相关问题