@@ -13,7 +13,10 @@ WordPress 是全球最流行的内容管理系统 (CMS)。使用 Docker Compose
1313``` bash
1414wordpress/
1515├── compose.yaml
16- ├── .env # 环境变量(敏感信息)
16+ ├── .env # 非敏感环境变量(如版本、端口)
17+ ├── secrets/ # 本地密钥文件,生产环境应由密钥管理系统提供
18+ │ ├── db_root_password.txt
19+ │ └── db_password.txt
1720└── nginx/ # 可选:反向代理配置
1821 └── nginx.conf
1922```
@@ -38,10 +41,13 @@ services:
3841 - --character-set-server=utf8mb4
3942 - --collation-server=utf8mb4_unicode_ci
4043 environment :
41- MYSQL_ROOT_PASSWORD : ${DB_ROOT_PASSWORD}
44+ MYSQL_ROOT_PASSWORD_FILE : /run/secrets/db_root_password
4245 MYSQL_DATABASE : wordpress
4346 MYSQL_USER : wordpress
44- MYSQL_PASSWORD : ${DB_PASSWORD}
47+ MYSQL_PASSWORD_FILE : /run/secrets/db_password
48+ secrets :
49+ - db_root_password
50+ - db_password
4551 volumes :
4652 - db_data:/var/lib/mysql
4753 networks :
@@ -60,8 +66,10 @@ services:
6066 environment :
6167 WORDPRESS_DB_HOST : db:3306
6268 WORDPRESS_DB_USER : wordpress
63- WORDPRESS_DB_PASSWORD : ${DB_PASSWORD}
69+ WORDPRESS_DB_PASSWORD_FILE : /run/secrets/db_password
6470 WORDPRESS_DB_NAME : wordpress
71+ secrets :
72+ - db_password
6573 volumes :
6674 - wp_data:/var/www/html
6775 # 增加上传文件大小限制
@@ -78,20 +86,29 @@ volumes:
7886
7987networks :
8088 wp_net :
89+
90+ secrets :
91+ db_root_password :
92+ file : ./secrets/db_root_password.txt
93+ db_password :
94+ file : ./secrets/db_password.txt
8195` ` `
8296---
8397
8498### 11.8.3 配置文件详解
8599
86- #### 1. 环境变量文件 .env
100+ #### 1. 密钥文件
87101
88- 为了安全,不要在 ` compose.yaml` 中直接写密码。创建 `.env` 文件 :
102+ 不要把数据库密码写入 ` compose.yaml`、 `.env`、命令行或 Git。Compose 官方建议敏感值使用 secrets;本地练习可用只读密钥文件模拟 :
89103
90- ` ` ` ini
91- DB_ROOT_PASSWORD=somestrongrootpassword
92- DB_PASSWORD=somestronguserpassword
104+ ` ` ` bash
105+ mkdir -p secrets
106+ printf '%s\n ' 'somestrongrootpassword' > secrets/db_root_password.txt
107+ printf '%s\n ' 'somestronguserpassword' > secrets/db_password.txt
108+ chmod 600 secrets/*.txt
93109` ` `
94- Compose 会自动读取此同级目录下的文件。
110+
111+ 把 `secrets/` 加入 `.gitignore`。生产环境应改用平台密钥管理能力,而不是把真实密码放在项目目录。
95112
96113# ### 2. 数据持久化
97114
0 commit comments