Fix and improve

This commit is contained in:
Baohua Yang
2026-02-12 16:51:50 -08:00
parent bae82e993a
commit 0835f8467a
100 changed files with 280 additions and 622 deletions

View File

@@ -42,12 +42,10 @@
$ mkdir django-docker && cd django-docker
```
我们需要创建三个文件`Dockerfile``requirements.txt` `docker-compose.yml`
我们需要创建三个文件`Dockerfile``requirements.txt` `compose.yaml`
### Step 1: 创建 Dockerfile
具体内容如下
```docker
FROM python:3.12-slim
@@ -86,8 +84,6 @@ COPY . /code/
### Step 2: 创建 requirements.txt
具体内容如下
```txt
Django>=5.0,<6.0
psycopg[binary]>=3.1,<4.0
@@ -102,9 +98,9 @@ gunicorn>=21.0,<22.0
| `psycopg[binary]` | PostgreSQL 数据库驱动推荐使用 psycopg 3 |
| `gunicorn` | 生产环境 WSGI 服务器可选开发时可不用 |
### Step 3: 创建 docker-compose.yml
### Step 3: 创建 compose.yaml
Step 3: 创建 docker-compose.yml 配置如下
Step 3: 创建 `compose.yaml` 配置如下
```yaml
services:
@@ -204,7 +200,7 @@ $ docker compose run --rm web django-admin startproject mysite .
```
django-docker/
├── docker-compose.yml
├── compose.yaml
├── Dockerfile
├── requirements.txt
├── manage.py
@@ -317,7 +313,7 @@ $ docker compose logs db
**可能原因**
1. **开发服务器没有自动重载**确保使用 `runserver` 而不是 `gunicorn`
2. **Volume 挂载问题**检查 `docker-compose.yml` 中的 volumes 配置
2. **Volume 挂载问题**检查 `compose.yaml` 中的 volumes 配置
3. **缓存问题**尝试 `docker compose restart web`
#### Q3: 权限问题Linux
@@ -342,10 +338,10 @@ $ sudo chown -R $USER:$USER .
| **Volume** | 挂载代码目录 | 代码直接 COPY 进镜像 |
| **ALLOWED_HOSTS** | `['*']` | 具体域名 |
**生产环境 docker-compose.yml 示例**
**生产环境 Compose 文件示例**
```yaml
## docker-compose.prod.yml
## compose.prod.yaml
services:
web:
@@ -360,7 +356,7 @@ services:
### 延伸阅读
- [Compose 模板文件详解](10.5_compose_file.md)深入理解 docker-compose.yml 的所有配置项
- [Compose 模板文件详解](10.5_compose_file.md)深入理解 Compose 文件的所有配置项
- [使用 WordPress](10.8_wordpress.md)另一个 Compose 实战案例
- [Dockerfile 最佳实践](../16_appendix/16.1_best_practices.md)构建更小更安全的镜像
- [数据管理](../08_data_network/README.md)Volume 和数据持久化详解