Ниже приведен пример небольшого рабочего файла Docker, который я в настоящее время использую для небольшого отдельного приложения, например, для развертывания производственного экземпляра.
Один момент, касающийся переменных среды, убедитесь, что они определены в контейнере или в файле .env.
В приведенном ниже примере используется gunicorn и он работает на порте 80. Вам нужно будет указать переменные ENV для db / cache / email / other. Кроме того, убедитесь, что у вас правильно настроены группы безопасности для авторизации доступа EB к вашему RDS.
Одно замечание: вам не следует выполнять миграцию / миграцию при каждом развертывании EB. Я бы посоветовал запустить их отдельно и протестировать, прежде чем делать это, поскольку ошибки / ошибки миграции могут серьезно испортить ваш рабочий / dev-сервер, а это то, что вам не нужно.
FROM python:3.6
RUN apt-get update && \
apt-get -y install libev-dev gcc gcc+ python3-dev g++ && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
ADD . /app
RUN pip install --trusted-host pypi.python.org -r requirements.txt
ENV DJANGO_ALLOWED_HOSTS *
ENV DJANGO_SETTINGS_MODULE config.settings.production
EXPOSE 80
ENTRYPOINT ["python", "/usr/local/bin/gunicorn", "config.wsgi", "-b 0.0.0.0:80" ,"-w=3", "--chdir=/app"]