#django #docker #dockerfile
Вопрос:
В настоящее время разрабатывается приложение Django для развертывания на цифровой капле океана. На этой капле есть 4 контейнера docker для: PostgreSQL, PGADMIN4, приложения Django, Certbot.
В Django Admin (локальный хост) я добавил некоторые значения в свою базу данных, и они будут отображаться во всем веб-приложении. Однако, когда я развертываю свое приложение Django в digital ocean droplet, этих данных нигде не видно. Я читал, что могу создать файл дампа sql из своей локальной базы данных и таким образом получить значения в моей капле. Но я предпочел бы другой способ, если это возможно.
Я делал этот процесс раньше, но я использовал базу данных postgis, которая поставляется с предварительно созданной базой данных, тогда как теперь мне нужно снова создать базу данных в моем контейнере postgresql (локально и на droplet).
Я создаю изображение своего приложения Django с помощью файла Docker, который затем отправляю на dockerhub и переношу в свою цифровую каплю океана.
Любая помощь будет признательна.
Докерфайл
##
## Dockerfile to generate a Docker image
##
# Start from an existing image with Python 3.8 installed
FROM python:3.8
MAINTAINER Mark Foley
# Run a series of Linux commands to ensure that
# 1. Everything is up-to-date and
RUN apt-get -y update amp;amp; apt-get -y upgrade
# Make a working directoir in the image and set it as working dir.
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# make sure that pip amp; setuptools are installed and to date
RUN pip install --upgrade pip setuptools wheel
# You should have already exported your Python library reuirements to a "requiremnts.txt" file using pip.
# Now copy this to the image and install everything in it.
COPY requirements.txt /usr/src/app
RUN pip install -r requirements.txt
# Copy everything in your Django project to the image.
COPY . /usr/src/app
# Make sure that static files are up to date and available
RUN python manage.py collectstatic --no-input
# Expose port 8001 on the image. We'll map a localhost port to this later.
EXPOSE 8001
# Run "uwsgi". uWSGI is a Web Server Gateway Interface (WSGI) server implementation that is typically used to run Python
# web applications.
CMD ["uwsgi", "--ini", "uwsgi.ini"]