Docker Составьте с React и Nginx - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь использовать docker -compose для развертывания моего приложения React, которое использует express backend и Postgres Database. Моя идея состоит в том, чтобы иметь общие тома из моей docker -композиции. Затем выполните сборку из моего Dockerfile в том, чтобы Nginx мог обслуживать файлы. Проблема в том, что он работает, когда я собираю проект в первый раз, но если я что-то изменяю в своем клиенте React и запускаю «docker -compose up --build», похоже, что все строится так, как должно, но обслуживаемые файлы все те же. Команда COPY в моем dockerfile не перезаписывает старые файлы?

Dockerfile в моем проекте React Client

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:

Возможно, я ' я полностью ошибаюсь?

1 Ответ

1 голос
/ 11 апреля 2020

Вы можете запускать команды в следующем порядке:

# 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 сохранятся между развертываниями. Для таких артефактов, как изменения кода, в идеале изображения должны публиковаться как часть процесса сборки. Чтобы получить немного больше понимания этого топи c, вы можете обратиться к https://github.com/docker/compose/issues/2127

...