Как я могу докеризировать свой проект с двумя приложениями в отдельных сервисах

как я могу докеризировать мой проект django так, чтобы запустить два приложения в двух разных сервисах и один запустить с портом:8000, а другой с портом:8001 извините за мой английский lol!!!

я попробовал сделать два dockerfile в каждом приложении

# Use an official Python runtime as a parent image
FROM python:3.8-slim

# Set the working directory
WORKDIR /usr/src/app

# Copy the requirements file into the container
COPY app1/requirements.txt ./

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Copy the rest of the application code
COPY app1/ .

# Run the application
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

и для app2

# Use an official Python runtime as a parent image
FROM python:3.8-slim

# Set the working directory
WORKDIR /usr/src/app

# Copy the requirements file into the container
COPY app2/requirements.txt ./

# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# Copy the rest of the application code
COPY app2/ .

# Run the application
CMD ["python", "manage.py", "runserver", "0.0.0.0:8001"]

и один docker-compose.yml в корне проекта

version: '3.8'

services:
  app1:
    build:
      context: .
      dockerfile: app1/Dockerfile
    volumes:
      - ./app1:/usr/src/app
    ports:
      - "8000:8000"
    environment:
      - DJANGO_SETTINGS_MODULE=myproject.settings

  app2:
    build:
      context: .
      dockerfile: app2/Dockerfile
    volumes:
      - ./app2:/usr/src/app
    ports:
      - "8001:8001"
    environment:
      - DJANGO_SETTINGS_MODULE=myproject.settings

но это не сработало.

При использовании docker-compose проекты будут запускаться на разных образах. Я думаю, что вы хотите запустить оба проекта на одном образе, поэтому вам следует использовать один Dockerfile и скопировать оба проекта в образ, а затем запустить их оба, как показано ниже.

CMD ["sh", "-c", "\
    python app/one/manage.py runserver 0.0.0.0:8001 && \
    python app/two/manage.py runserver 0.0.0.0:8000 \
"]
Вернуться на верх