mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 11:15:39 +00:00
Fix and update
This commit is contained in:
@@ -46,22 +46,29 @@ $ mkdir django-docker && cd django-docker
|
||||
|
||||
### Step 1: 创建 Dockerfile
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```docker
|
||||
FROM python:3.12-slim
|
||||
|
||||
## 防止 Python 缓冲 stdout/stderr,让日志实时输出
|
||||
|
||||
ENV PYTHONUNBUFFERED=1
|
||||
|
||||
## 设置工作目录
|
||||
|
||||
WORKDIR /code
|
||||
|
||||
## 先复制依赖文件,利用 Docker 缓存加速构建
|
||||
|
||||
COPY requirements.txt /code/
|
||||
|
||||
## 安装依赖
|
||||
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
## 复制项目代码
|
||||
|
||||
COPY . /code/
|
||||
```
|
||||
|
||||
@@ -79,6 +86,8 @@ COPY . /code/
|
||||
|
||||
### Step 2: 创建 requirements.txt
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```txt
|
||||
Django>=5.0,<6.0
|
||||
psycopg[binary]>=3.1,<4.0
|
||||
@@ -95,6 +104,8 @@ gunicorn>=21.0,<22.0
|
||||
|
||||
### Step 3: 创建 docker-compose.yml
|
||||
|
||||
Step 3: 创建 docker-compose.yml 配置如下:
|
||||
|
||||
```yaml
|
||||
services:
|
||||
db:
|
||||
@@ -132,6 +143,8 @@ volumes:
|
||||
|
||||
#### db 服务
|
||||
|
||||
db 服务 配置如下:
|
||||
|
||||
```yaml
|
||||
db:
|
||||
image: postgres:16 # 使用官方 PostgreSQL 16 镜像
|
||||
@@ -150,6 +163,8 @@ db:
|
||||
|
||||
#### web 服务
|
||||
|
||||
web 服务 配置如下:
|
||||
|
||||
```yaml
|
||||
web:
|
||||
build: . # 从当前目录的 Dockerfile 构建
|
||||
@@ -222,6 +237,7 @@ DATABASES = {
|
||||
}
|
||||
|
||||
## 允许的主机(开发环境)
|
||||
|
||||
ALLOWED_HOSTS = ['*']
|
||||
```
|
||||
|
||||
@@ -231,6 +247,8 @@ ALLOWED_HOSTS = ['*']
|
||||
|
||||
### Step 6: 启动应用
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker compose up
|
||||
```
|
||||
@@ -255,15 +273,19 @@ web-1 | Starting development server at http://0.0.0.0:8000/
|
||||
|
||||
```bash
|
||||
## 执行数据库迁移
|
||||
|
||||
$ docker compose exec web python manage.py migrate
|
||||
|
||||
## 创建超级用户
|
||||
|
||||
$ docker compose exec web python manage.py createsuperuser
|
||||
|
||||
## 进入 Django shell
|
||||
|
||||
$ docker compose exec web python manage.py shell
|
||||
|
||||
## 进入 PostgreSQL 命令行
|
||||
|
||||
$ docker compose exec db psql -U django_user -d django_db
|
||||
```
|
||||
|
||||
@@ -285,6 +307,7 @@ $ docker compose exec db psql -U django_user -d django_db
|
||||
|
||||
```bash
|
||||
## 调试:检查数据库是否正常运行
|
||||
|
||||
$ docker compose ps
|
||||
$ docker compose logs db
|
||||
```
|
||||
@@ -299,8 +322,11 @@ $ docker compose logs db
|
||||
|
||||
#### Q3: 权限问题(Linux)
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 如果容器内创建的文件 root 用户所有
|
||||
|
||||
$ sudo chown -R $USER:$USER .
|
||||
```
|
||||
|
||||
@@ -320,6 +346,7 @@ $ sudo chown -R $USER:$USER .
|
||||
|
||||
```yaml
|
||||
## docker-compose.prod.yml
|
||||
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
|
||||
Reference in New Issue
Block a user