如何基于Alpine:3.14基础镜像在Docker中部署Django+Postgres项目?
Docker Compose 搭建 Django + PostgreSQL 开发环境操作指南
操作步骤如下:
- 首先在项目根文件夹中创建以下三个初始文件:
Dockerfile
# syntax=docker/dockerfile:1 FROM alpine:3.14 ENV PYTHONUNBUFFERED=1 WORKDIR /code COPY requirements.txt /code/ RUN apk update RUN apk add postgresql-dev RUN apk add gcc RUN apk add python3-dev RUN apk add musl-dev RUN apk add py3-pip RUN pip install psycopg2 RUN pip install -r requirements.txt COPY . /code/
docker-compose.yml
version: "3.9" services: db: image: postgres volumes: - ./data/db:/var/lib/postgresql/data environment: - POSTGRES_DB=postgres - POSTGRES_USER=postgres - POSTGRES_PASSWORD=postgres web: build: . command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8000" depends_on: - db
requirements.txt
Django>=3.0,<4.0 psycopg2-binary>=2.8
- 三个文件创建完成后,在项目根目录的终端中执行以下命令初始化Django项目:
docker-compose run web django-admin startproject example_project .
- 接下来修改新生成的Django项目目录下的
settings.py文件,将原有数据库配置替换为如下内容:
settings.py 数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'PASSWORD': 'postgres', 'HOST': 'db', 'PORT': 5432, } }
- 执行如下命令启动所有服务:
docker-compose up
- 服务正常运行后,进入web容器的终端执行数据库迁移操作:如果使用Docker Desktop,操作路径为
Docker Desktop > 容器/应用 > 展开对应docker分组 > 打开web服务对应的CLI,在容器终端内执行如下命令:
python3 manage.py migrate
内容的提问来源于stack exchange,提问作者Shine Cardozo
相关产品推荐
相关产品推荐

