![](/img/trans.png)
[英]Configure Nginx for React and Flask with Docker-Compose
[英]Docker Compose with React and Nginx
我正在嘗試使用 docker-compose 來部署我的 React 應用程序,該應用程序使用快速后端和 Postgres 數據庫。 我的想法是從我的 docker-compose 共享卷。 然后從我的 Dockerfile 構建到卷中,以便 Nginx 能夠提供文件。 現在的問題是,當我第一次構建項目時它可以工作,但是如果我在我的 React 客戶端中更改某些內容並運行“docker-compose up --build”,它看起來一切都在按應有的方式構建,但是文件已提供還是一樣。 我的 dockerfile 中的 COPY 命令不會覆蓋舊文件嗎?
我的 React 客戶端項目中的 Dockerfile
FROM node:13.12.0-alpine as build
WORKDIR /app
COPY package.json ./
COPY package-lock.json ./
RUN npm install
COPY . ./
RUN npm run build
FROM node:13.12.0-alpine
COPY --from=build /app/build /var/lib/frontend
docker-compose
version: "3.7"
services:
callstat_backend:
build: ./callstat-backend
restart: always
ports:
- "3000:3000"
env_file:
- keys.env
depends_on:
- postgres
callstat_frontend:
build: ./callstat-client
volumes:
- frontend/:/var/lib/frontend
postgres:
image: postgres:11.2-alpine
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: callstat
nginx:
image: nginx
volumes:
- frontend:/usr/share/nginx/html
- ./nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "80:80"
depends_on:
- callstat_frontend
volumes:
pgdata:
frontend:
也許我在這里采取了完全錯誤的方法?
您可以按以下順序運行命令:
# stop down the services
docker-compose stop
# remove the previously created docker resources
docker-compose rm
# bring up the services again
docker-compose up --build
這是您之前的卷被刪除,新的卷將使用更新的更改創建。
注意:從開發的角度來看,這沒問題,但 docker 卷確實有望在部署之間持續存在。 對於像代碼更改這樣的工件,理想情況下,圖像應該作為構建過程的一部分發布。 要深入了解這個主題,您可以參考https://github.com/docker/compose/issues/2127
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.