#docker #dockerfile
Вопрос:
Мой текущий файл Dockerfile выглядит следующим образом
# base image
FROM node:14
# react
WORKDIR 'frontend'
COPY frontend/package.json .
RUN npm install
COPY frontend .
CMD ["npm", "start"]
# django
FROM python:3.9
WORKDIR 'server'
COPY server/requirements.txt ./server/
RUN pip install -r requirements.txt
COPY server ./server
CMD ["python", "manage.py", "runserver"]
Если я закомментирую react или django, сработает другое. К сожалению, я не могу заставить это работать вместе. Есть ли способ объединить их в одном файле Dockerfile?
Комментарии:
1. Я мог бы предложить
RUN npm build
или что-то подобное на первом этапе скомпилировать интерфейсное приложение в статические файлы, а затем что-то подобноеCOPY --from=frontend /frontend/dist ./static
на втором этапе, чтобы использовать его в качестве статических файлов.
Ответ №1:
user9066046 — Вы пытаетесь запустить 2 контейнера docker в одном файле — есть docker-составьте для запуска мультиконтейнеров — одновременно:
Также здесь есть возможность передавать ENV_VARIABLES для конкретной среды (DEV, QA ,UAT, PROD) и т.д.
https://docs.docker.com/compose/
version: "3.9"
services:
react:
build: .
image: react
ports:
- "5000:5000"
django:
image: django
ports:
- "5001:5000"
Для него имя изображения — из которого должны быть построены контейнеры.