如何使用基本映像 Alpine:3.14 在 Docker 上安装 Django+Postgres
How to install Django+Postgres on Docker using base image Alpine:3.14
以下是您需要在项目文件夹中创建的前三个文件
Docker文件
# 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
创建以上 3 个文件后 运行 以下命令:
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
由于服务器 运行正在转到容器的终端并进行迁移
(Docker 桌面 > Container/Apps > 展开 docker > Docker_web CLI)
python3 manage.py migrate
快速笔记:
在继续 Docker 安装之前,我使用以下文档安装了 WSL:
https://docs.microsoft.com/en-us/windows/wsl/install-win10
然后我从下面link下载了Alpine Linux:
https://github.com/yuk7/AlpineWSL
下载Link如下:
https://github.com/yuk7/AlpineWSL/releases/tag/3.14.0-1
然后我把这个Alpine设置为版本2
您可以使用 wsl -l -v
检查图像设置的版本
您可以使用 wsl --set-version Alpine 2
将版本设置为 2
有用的命令:
1] 要在更改 Docker 文件后重建 docker 映像,请使用:
docker build .
以下是您需要在项目文件夹中创建的前三个文件
Docker文件
# 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
创建以上 3 个文件后 运行 以下命令:
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
由于服务器 运行正在转到容器的终端并进行迁移 (Docker 桌面 > Container/Apps > 展开 docker > Docker_web CLI)
python3 manage.py migrate
快速笔记: 在继续 Docker 安装之前,我使用以下文档安装了 WSL: https://docs.microsoft.com/en-us/windows/wsl/install-win10
然后我从下面link下载了Alpine Linux: https://github.com/yuk7/AlpineWSL
下载Link如下: https://github.com/yuk7/AlpineWSL/releases/tag/3.14.0-1
然后我把这个Alpine设置为版本2
您可以使用 wsl -l -v
检查图像设置的版本
您可以使用 wsl --set-version Alpine 2
有用的命令:
1] 要在更改 Docker 文件后重建 docker 映像,请使用:
docker build .