mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 16:37:34 +00:00
fix(content): harden Docker examples
This commit is contained in:
@@ -13,7 +13,10 @@ WordPress 是全球最流行的内容管理系统 (CMS)。使用 Docker Compose
|
||||
```bash
|
||||
wordpress/
|
||||
├── compose.yaml
|
||||
├── .env # 环境变量(敏感信息)
|
||||
├── .env # 非敏感环境变量(如版本、端口)
|
||||
├── secrets/ # 本地密钥文件,生产环境应由密钥管理系统提供
|
||||
│ ├── db_root_password.txt
|
||||
│ └── db_password.txt
|
||||
└── nginx/ # 可选:反向代理配置
|
||||
└── nginx.conf
|
||||
```
|
||||
@@ -38,10 +41,13 @@ services:
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_unicode_ci
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
|
||||
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
|
||||
MYSQL_DATABASE: wordpress
|
||||
MYSQL_USER: wordpress
|
||||
MYSQL_PASSWORD: ${DB_PASSWORD}
|
||||
MYSQL_PASSWORD_FILE: /run/secrets/db_password
|
||||
secrets:
|
||||
- db_root_password
|
||||
- db_password
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
networks:
|
||||
@@ -60,8 +66,10 @@ services:
|
||||
environment:
|
||||
WORDPRESS_DB_HOST: db:3306
|
||||
WORDPRESS_DB_USER: wordpress
|
||||
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
|
||||
WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
|
||||
WORDPRESS_DB_NAME: wordpress
|
||||
secrets:
|
||||
- db_password
|
||||
volumes:
|
||||
- wp_data:/var/www/html
|
||||
# 增加上传文件大小限制
|
||||
@@ -78,20 +86,29 @@ volumes:
|
||||
|
||||
networks:
|
||||
wp_net:
|
||||
|
||||
secrets:
|
||||
db_root_password:
|
||||
file: ./secrets/db_root_password.txt
|
||||
db_password:
|
||||
file: ./secrets/db_password.txt
|
||||
```
|
||||
---
|
||||
|
||||
### 11.8.3 配置文件详解
|
||||
|
||||
#### 1. 环境变量文件 .env
|
||||
#### 1. 密钥文件
|
||||
|
||||
为了安全,不要在 `compose.yaml` 中直接写密码。创建 `.env` 文件:
|
||||
不要把数据库密码写入 `compose.yaml`、`.env`、命令行或 Git。Compose 官方建议敏感值使用 secrets;本地练习可用只读密钥文件模拟:
|
||||
|
||||
```ini
|
||||
DB_ROOT_PASSWORD=somestrongrootpassword
|
||||
DB_PASSWORD=somestronguserpassword
|
||||
```bash
|
||||
mkdir -p secrets
|
||||
printf '%s\n' 'somestrongrootpassword' > secrets/db_root_password.txt
|
||||
printf '%s\n' 'somestronguserpassword' > secrets/db_password.txt
|
||||
chmod 600 secrets/*.txt
|
||||
```
|
||||
Compose 会自动读取此同级目录下的文件。
|
||||
|
||||
把 `secrets/` 加入 `.gitignore`。生产环境应改用平台密钥管理能力,而不是把真实密码放在项目目录。
|
||||
|
||||
#### 2. 数据持久化
|
||||
|
||||
|
||||
Reference in New Issue
Block a user