Как отправить приложение Django в виде образа docker?
Я хотел бы упаковать и отправить веб-приложение Django в виде образа Docker.
Когда я делаю docker-compose up, я вижу древовидную иерархию в контейнерах рабочего стола Docker, и она работает как ожидалось, когда я перехожу на http://localhost:85
django-dashboard-volt
|___appseed_app
|___nginx
Если я сохраняю и загружаю изображение, я вижу следующее в контейнерах рабочего стола Docker, и веб-приложение не работает:
django-dashboard-volt_appseed-app
nginx
Вот как я сохраняю и загружаю изображения:
docker save django-dashboard-volt_appseed-app:latest nginx:latest | gzip > django.tar.gz
docker load --input django.tar.gz
Вот Dockerfile:
FROM python:3.9
COPY . .
ADD test .
ADD data .
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ENV PYTHONPATH /test
ENV APP_USER=xxxx
ENV APP_HOME=/home/$APP_USER
# install python dependencies
#RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --upgrade pip
RUN pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --no-cache-dir -r requirements.txt
RUN tar xvzf gurobi9.5.0_linux64.tar.gz
ENV GUROBI_HOME /gurobi950/linux64
RUN cd /gurobi950/linux64 && python setup.py install
RUN rm gurobi9.5.0_linux64.tar.gz
RUN echo "TOKENSERVER=xxxx" > /gurobi.lic
RUN groupadd -r $APP_USER && \
useradd -r -g $APP_USER -d $APP_HOME -s /sbin/nologin -c "Docker image user" $APP_USER
ENV TZ 'America/Los_Angeles'
RUN echo $TZ > /etc/timezone && apt-get update && \
apt-get install -y tzdata && \
rm /etc/localtime && \
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata && \
apt-get clean
RUN chown -R $APP_USER:$APP_USER /gurobi950
RUN chown -R $APP_USER:$APP_USER /db
### What is better than 777?
RUN chmod -R 777 /db
RUN chmod -R 777 /gurobi950
ENV GRB_LICENSE_FILE /gurobi.lic
ENV LD_LIBRARY_PATH=/gurobi950/linux64/lib
RUN /gurobi950/linux64/bin/gurobi_cl --version
WORKDIR /
# running migrations
RUN python manage.py migrate
USER $APP_USER
# gunicorn
CMD ["gunicorn", "--config", "gunicorn-cfg.py", "core.wsgi"]
Мой вопрос:
Как сохранить и загрузить образ Django Docker, чтобы загруженный контейнер Django работал из веб-браузера?