目前正在开发一个 Django 应用程序,以部署到数字海洋水滴上。在这个 Droplet 上有 4 个 docker 容器:PostgreSQL、PGADMIN4、Django App、Certbot。
在 Django Admin (localhost) 中,我向我的数据库添加了一些值,它们将显示在整个 Web 应用程序中。但是,当我将我的 Django 应用程序部署到数字海洋水滴时,这些数据无处可见。我读到我可以制作本地数据库的 sql 转储文件,并以这种方式获取我的 droplet 上的值。但如果可能的话,请换一种方式。
我之前已经完成了这个过程,但我使用了一个带有预建数据库的 postgis 数据库,而现在我必须在我的 postgresql 容器(本地和 droplet)上再次创建一个数据库。
我正在通过 Docker 文件创建 Django 应用程序的映像,然后将其推送到 dockerhub 并拉到我的数字海洋水滴。
感谢任何帮助。
Dockerfile
##
## 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 && 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 & 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"]