#nginx #docker-compose #docker-multi-stage-build
#nginx #докер-сочинение #докер-многоступенчатая сборка
Вопрос:
У меня есть файл Docker, который создает приложение react, а затем запускает сервер nginx для обслуживания полученного веб-пакета. Я использую многоступенчатую сборку, что-то вроде:
# Dockerfile # build application FROM node:14-alpine AS builder ... project cofiguration RUN npm run build # copy to nginx FROM nginx:stable-alpine COPY --from=builder /app/build /usr/share/nginx/html ... more setup here
// docker-compose.yaml version: '3' services: frontend-nginx: build: context: frontend ports: ...
Теперь мне нужно добавить еще одно веб-приложение, поэтому я хочу разделить этапы builder и nginx на отдельные файлы докеров.
Есть ли способ COPY --from
в docker-сочинять.yaml? Должен ли я просто сохранить вывод builder
на общий том и получить к нему доступ во время выполнения из nginx?
Комментарии:
1. Они должны быть либо двумя контейнерами, то есть двумя NGINX, либо одним контейнером, то есть в одном файле Dockerfile.
2. @jonrsharpe зачем мне нужны 2 контейнера? У меня есть один сервер nginx, обслуживающий несколько приложений. Мне просто нужно разместить статические страницы из веб-пакета обоих приложений в контейнере nginx.
3. Вам не нужны два контейнера, поэтому я предложил другой вариант.
4. 2-й вариант-это то, что у меня есть сейчас, но контекст становится слишком сложным для управления. Я ищу способ иметь 2 контейнера (на самом деле 1 на веб-приложение 1 nginx) и просто скопировать статические файлы в конечный контейнер nginx. По-вашему, это невозможно?
5. Вы можете использовать тома в файле «docker-compose.yml», если у вас есть код на вашем компьютере. Я не знаю другого способа сделать что-то подобное в docker-compose