gpt4 book ai didi

reactjs - 如何使用docker-compose构建和部署ReactJs

转载 作者:行者123 更新时间:2023-12-02 21:09:40 25 4
gpt4 key购买 nike

我试图每次在应用程序上进行新更改时都不需要构建该应用程序,然后运行docker-compose文件。我想做的是,当我更改应用程序(ReactJs)中的代码以仅运行docker-compose文件时,那么docker-compose将使用nginx生成并运行它。

这是我的docker-compose.yml的样子:

version: '2'

services:
nginx:
image: 'bitnami/nginx:1.14.2'
ports:
- '80:8080'
volumes:
- ./build:/var/www/my-app
- ./nginx.conf:/opt/bitnami/nginx/conf/nginx.conf:ro

现在,使用此代码,我需要自己运行 npm run build来构建应用程序,然后运行docker-compose文件,以便进行更改。

我不完全知道该怎么做,所以我假设我需要创建一个 Dockerfile运行 npm run build,然后根据其文档调用bitmani / nginx:1.14.2: https://hub.docker.com/r/bitnami/nginx/
FROM node:8.7.0-alpine

RUN npm install

RUN npm run build

docker run --name nginx \
-v /path/to/my_vhost.conf:/opt/bitnami/nginx/conf/vhosts/my_vhost.conf:ro \
-v /path/to/nginx-persistence/nginx/conf/bitnami/certs:/bitnami/nginx/conf/bitnami/certs \
bitnami/nginx:latest


并在 docker-compose.yml中调用 build .而不是 image: bitnami/nginx

最佳答案

您应该为此使用阶段构建。您的Dockerfile应该如下所示:

# Stage 1 - Building image
FROM node:8.7.0-alpine as node

WORKDIR /usr/src/app

COPY package*.json ./

RUN npm install

COPY . .

RUN npm run build

# Stage 2 - Running image
FROM bitnami/nginx:1.14.2

COPY --from=node /usr/src/app/build /var/www/my-app
COPY ./nginx.conf /opt/bitnami/nginx/conf/nginx.conf


和你的 docker 组成:
version: '3.3'

services:
myApp:
image: myapp:1.0
container_name: my-app
build: .
ports:
- 80:8080


我从我的一个项目中改编了此文件,因此,如果您有任何问题,请告诉我,我会进行检查。

希望对您有所帮助。

关于reactjs - 如何使用docker-compose构建和部署ReactJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55455802/

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