Django в Docker - разверните 2 экземпляра с разными настройками - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть приложение Django 2.1, и я настроил его для запуска в Docker.

Мне нужно развернуть 2 экземпляра одного и того же приложения, и различия заключаются в том, что база данных подключена к каждому экземпляру, а некоторые параметрыsettings.py.Каждый экземпляр должен быть назначен на свой порт (скажем, 8000 и 8001).

На самом деле у меня есть 2 разные папки, например, если было 2 проекта со своей средой и настройками, и каждый запускаетсяс помощью команды manage.py runserver 0.0.0.0:800x (потому что все еще находится в разработке).

Основной вопрос: есть ли способ развернуть эти 2 экземпляра в одном образе одного докера, при этом эти 2 порта и каждый экземпляр работают со своимсобственный файл настроек?

Примечание: поскольку у меня есть некоторые конкретные параметры в setting.py, я использую их в представлениях, импортирующих параметр следующим образом: from MyApp.settings import COMPANY_ID

Примечание2: этоDockerfile для развертывания одного экземпляра:

FROM python:3.7

# COPY startup script into known file location in container
COPY start.sh /start.sh

# EXPOSE port to allow communication to/from server
EXPOSE 8000

# The enviroment variable ensures that the python output is set straight
# to the terminal with out buffering it first
ENV PYTHONUNBUFFERED 1

# create root directory for our project in the container
RUN mkdir /app

# Set the working directory to /music_service
WORKDIR /app

# Copy the current directory contents into the container at /music_service
ADD . /app/

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

# CMD specifcies the command to execute to start the server running.
CMD ["/start.sh"]

, и мой файл start.sh содержит это:

#!/bin/bash

# Apply any missing migration
./manage.py migrate

# Start Gunicorn processes
echo Starting Gunicorn.
exec gunicorn MyApp.wsgi:application \
    --bind 0.0.0.0:8000 \
    --workers 17
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...