mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 20:31:18 +00:00
style(docs): standardize heading formats and numbering
- Enforce Level 1-3 structural numbering based on SUMMARY.md hierarchy - Remove structural numbering from Level 4+ headings - Eliminate single child headings by converting to bold text - Auto-inject summary text for headings with multiple children missing intro text - Exclude Appendix chapters from structural numbering - Avoid modifying code block contents - Add script to detect non-standard English usage in headers
This commit is contained in:
@@ -10,11 +10,11 @@
|
||||
|
||||
`Compose` 恰好满足了这样的需求。它允许用户通过一个单独的 `compose.yaml` (历史默认名也常见为 `docker-compose.yml`) 模板文件 (YAML 格式) 来定义一组相关联的应用容器为一个项目 (project)。
|
||||
|
||||
### 概述
|
||||
### 10.1.1 概述
|
||||
|
||||
总体概述了以下内容。
|
||||
|
||||
### 模板文件规范
|
||||
### 10.1.2 模板文件规范
|
||||
|
||||
Compose 模板文件采用 YAML 格式,扩展名为 `.yml` 或 `.yaml`。
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
Linux 系统请使用以下介绍的方法安装。
|
||||
|
||||
### Linux
|
||||
### 10.2.1 Linux
|
||||
|
||||
在 Linux 上,你可以通过下载 Docker Compose CLI 插件 (二进制文件名为 `docker-compose`) 来安装。
|
||||
|
||||
@@ -32,7 +32,7 @@ $ curl -SL https://github.com/docker/compose/releases/download/v5.0.2/docker-com
|
||||
$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
|
||||
```
|
||||
|
||||
### 测试安装
|
||||
### 10.2.2 测试安装
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -41,7 +41,7 @@ $ docker compose version
|
||||
Docker Compose version v5.0.2
|
||||
```
|
||||
|
||||
### bash 补全命令
|
||||
### 10.2.3 bash 补全命令
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -49,7 +49,7 @@ Docker Compose version v5.0.2
|
||||
$ curl -L https://raw.githubusercontent.com/docker/compose/v5.0.2/contrib/completion/bash/docker-compose | sudo tee /etc/bash_completion.d/docker-compose > /dev/null
|
||||
```
|
||||
|
||||
### 卸载
|
||||
### 10.2.4 卸载
|
||||
|
||||
如果是二进制包方式安装的,删除二进制文件即可。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
本节将通过一个具体的 Web 应用案例,介绍 Docker Compose 的基本概念和使用方法。
|
||||
|
||||
### 术语
|
||||
### 10.3.1 术语
|
||||
|
||||
首先介绍几个术语。
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
可见,一个项目可以由多个服务 (容器) 关联而成,`Compose` 面向项目进行管理。
|
||||
|
||||
### 场景
|
||||
### 10.3.2 场景
|
||||
|
||||
最常见的项目是 web 网站,该项目应该包含 web 应用和缓存。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Docker Compose 提供了丰富的命令来管理项目和容器。本节将详细介绍这些命令的使用格式和常用选项。
|
||||
|
||||
### 命令对象与格式
|
||||
### 10.4.1 命令对象与格式
|
||||
|
||||
对于 Compose 来说,大部分命令的对象既可以是项目本身,也可以指定为项目中的服务或者容器。如果没有特别的说明,命令对象将是项目,这意味着项目中所有的服务都会受到命令影响。
|
||||
|
||||
@@ -14,7 +14,7 @@ Docker Compose 提供了丰富的命令来管理项目和容器。本节将详
|
||||
docker compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
|
||||
```
|
||||
|
||||
### 命令选项
|
||||
### 10.4.2 命令选项
|
||||
|
||||
* `-f, --file FILE` 指定使用的 Compose 模板文件。默认会自动识别 `compose.yaml` (也兼容 `docker-compose.yml` 等),并且可以多次指定。
|
||||
|
||||
@@ -24,7 +24,7 @@ docker compose [-f=<arg>...] [options] [COMMAND] [ARGS...]
|
||||
|
||||
* `-v, --version` 打印版本并退出。
|
||||
|
||||
### 命令使用说明
|
||||
### 10.4.3 命令使用说明
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ services:
|
||||
|
||||
下面分别介绍各个指令的用法。
|
||||
|
||||
### `build`
|
||||
### 10.5.1 `build`
|
||||
|
||||
指定 `Dockerfile` 所在文件夹的路径 (可以是绝对路径,或者相对 Compose 文件的路径)。`Compose` 将会利用它自动构建这个镜像,然后使用这个镜像。
|
||||
|
||||
@@ -56,7 +56,7 @@ build:
|
||||
- corp/web_app:3.14
|
||||
```
|
||||
|
||||
### `cap_add, cap_drop`
|
||||
### 10.5.2 `cap_add, cap_drop`
|
||||
|
||||
指定容器的内核能力 (capacity) 分配。
|
||||
|
||||
@@ -74,7 +74,7 @@ cap_drop:
|
||||
- NET_ADMIN
|
||||
```
|
||||
|
||||
### `command`
|
||||
### 10.5.3 `command`
|
||||
|
||||
覆盖容器启动后默认执行的命令。
|
||||
|
||||
@@ -82,11 +82,11 @@ cap_drop:
|
||||
command: echo "hello world"
|
||||
```
|
||||
|
||||
### `configs`
|
||||
### 10.5.4 `configs`
|
||||
|
||||
`configs` 来自 Compose Specification。它在 Swarm 中是原生对象;在本地 `docker compose` 模式下通常以文件挂载的形式实现,具体能力取决于 Compose 版本与运行平台。
|
||||
|
||||
### `cgroup_parent`
|
||||
### 10.5.5 `cgroup_parent`
|
||||
|
||||
指定父 `cgroup` 组,意味着将继承该组的资源限制。
|
||||
|
||||
@@ -96,7 +96,7 @@ command: echo "hello world"
|
||||
cgroup_parent: cgroups_1
|
||||
```
|
||||
|
||||
### `container_name`
|
||||
### 10.5.6 `container_name`
|
||||
|
||||
指定容器名称。默认将会使用 `项目名称_服务名称_序号` 这样的格式。
|
||||
|
||||
@@ -106,11 +106,11 @@ container_name: docker-web-container
|
||||
|
||||
>注意:指定容器名称后,该服务将无法进行扩展 (scale),因为 Docker 不允许多个容器具有相同的名称。
|
||||
|
||||
### `deploy`
|
||||
### 10.5.7 `deploy`
|
||||
|
||||
`deploy` 用于描述副本数、更新策略、资源限制等部署参数。该字段在 Swarm 中支持最完整;在本地 `docker compose up` 场景下通常只有部分字段生效。
|
||||
|
||||
### `devices`
|
||||
### 10.5.8 `devices`
|
||||
|
||||
指定设备映射关系。
|
||||
|
||||
@@ -119,7 +119,7 @@ devices:
|
||||
- "/dev/ttyUSB1:/dev/ttyUSB0"
|
||||
```
|
||||
|
||||
### `depends_on`
|
||||
### 10.5.9 `depends_on`
|
||||
|
||||
解决容器的依赖、启动先后的问题。以下例子中会先启动 `redis` `db` 再启动 `web`
|
||||
|
||||
@@ -140,7 +140,7 @@ services:
|
||||
|
||||
>注意:`web` 服务不会等待 `redis` `db` “完全启动” 之后才启动。
|
||||
|
||||
### `dns`
|
||||
### 10.5.10 `dns`
|
||||
|
||||
自定义 `DNS` 服务器。可以是一个值,也可以是一个列表。
|
||||
|
||||
@@ -152,7 +152,7 @@ dns:
|
||||
- 114.114.114.114
|
||||
```
|
||||
|
||||
### `dns_search`
|
||||
### 10.5.11 `dns_search`
|
||||
|
||||
配置 `DNS` 搜索域。可以是一个值,也可以是一个列表。
|
||||
|
||||
@@ -164,7 +164,7 @@ dns_search:
|
||||
- domain2.example.com
|
||||
```
|
||||
|
||||
### `tmpfs`
|
||||
### 10.5.12 `tmpfs`
|
||||
|
||||
挂载一个 tmpfs 文件系统到容器。
|
||||
|
||||
@@ -175,7 +175,7 @@ tmpfs:
|
||||
- /tmp
|
||||
```
|
||||
|
||||
### `env_file`
|
||||
### 10.5.13 `env_file`
|
||||
|
||||
从文件中获取环境变量,可以为单独的文件路径或列表。
|
||||
|
||||
@@ -200,7 +200,7 @@ env_file:
|
||||
PROG_ENV=development
|
||||
```
|
||||
|
||||
### `environment`
|
||||
### 10.5.14 `environment`
|
||||
|
||||
设置环境变量。你可以使用数组或字典两种格式。
|
||||
|
||||
@@ -222,7 +222,7 @@ environment:
|
||||
y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF
|
||||
```
|
||||
|
||||
### `expose`
|
||||
### 10.5.15 `expose`
|
||||
|
||||
暴露端口,但不映射到宿主机,只被连接的服务访问。
|
||||
|
||||
@@ -234,7 +234,7 @@ expose:
|
||||
- "8000"
|
||||
```
|
||||
|
||||
### `external_links`
|
||||
### 10.5.16 `external_links`
|
||||
|
||||
>注意:不建议使用该指令。
|
||||
|
||||
@@ -247,7 +247,7 @@ external_links:
|
||||
- project_db_1:postgresql
|
||||
```
|
||||
|
||||
### `extra_hosts`
|
||||
### 10.5.17 `extra_hosts`
|
||||
|
||||
类似 Docker 中的 `--add-host` 参数,指定额外的 host 名称映射信息。
|
||||
|
||||
@@ -264,7 +264,7 @@ extra_hosts:
|
||||
52.1.157.61 dockerhub
|
||||
```
|
||||
|
||||
### `healthcheck`
|
||||
### 10.5.18 `healthcheck`
|
||||
|
||||
通过命令检查容器是否健康运行。
|
||||
|
||||
@@ -276,7 +276,7 @@ healthcheck:
|
||||
retries: 3
|
||||
```
|
||||
|
||||
### `image`
|
||||
### 10.5.19 `image`
|
||||
|
||||
指定为镜像名称或镜像 ID。如果镜像在本地不存在,`Compose` 将会尝试拉取这个镜像。
|
||||
|
||||
@@ -286,7 +286,7 @@ image: orchardup/postgresql
|
||||
image: a4bc65fd
|
||||
```
|
||||
|
||||
### `labels`
|
||||
### 10.5.20 `labels`
|
||||
|
||||
为容器添加 Docker 元数据 (metadata) 信息。例如可以为容器添加辅助说明信息。
|
||||
|
||||
@@ -297,11 +297,11 @@ labels:
|
||||
com.startupteam.release: "rc3 for v1.0"
|
||||
```
|
||||
|
||||
### `links`
|
||||
### 10.5.21 `links`
|
||||
|
||||
>注意:不推荐使用该指令。容器之间应通过 Docker 网络 (networks) 进行互联。
|
||||
|
||||
### `logging`
|
||||
### 10.5.22 `logging`
|
||||
|
||||
配置日志选项。
|
||||
|
||||
@@ -328,7 +328,7 @@ options:
|
||||
max-file: "10"
|
||||
```
|
||||
|
||||
### `network_mode`
|
||||
### 10.5.23 `network_mode`
|
||||
|
||||
设置网络模式。使用和 `docker run` 的 `--network` 参数一样的值。
|
||||
|
||||
@@ -340,7 +340,7 @@ network_mode: "service:[service name]"
|
||||
network_mode: "container:[container name/id]"
|
||||
```
|
||||
|
||||
### `networks`
|
||||
### 10.5.24 `networks`
|
||||
|
||||
配置容器连接的网络。
|
||||
|
||||
@@ -358,7 +358,7 @@ networks:
|
||||
other-network:
|
||||
```
|
||||
|
||||
### `pid`
|
||||
### 10.5.25 `pid`
|
||||
|
||||
跟主机系统共享进程命名空间。打开该选项的容器之间,以及容器和宿主机系统之间可以通过进程 ID 来相互访问和操作。
|
||||
|
||||
@@ -366,7 +366,7 @@ networks:
|
||||
pid: "host"
|
||||
```
|
||||
|
||||
### `ports`
|
||||
### 10.5.26 `ports`
|
||||
|
||||
暴露端口信息。
|
||||
|
||||
@@ -382,7 +382,7 @@ ports:
|
||||
|
||||
*注意:当使用 `HOST:CONTAINER` 格式来映射端口时,如果你使用的容器端口小于 60 并且没放到引号里,可能会得到错误结果,因为 `YAML` 会自动解析 `xx:yy` 这种数字格式为 60 进制。为避免出现这种问题,建议数字串都采用引号包括起来的字符串格式。*
|
||||
|
||||
### `secrets`
|
||||
### 10.5.27 `secrets`
|
||||
|
||||
存储敏感数据,例如 `mysql` 服务密码。
|
||||
|
||||
@@ -405,7 +405,7 @@ secrets:
|
||||
external: true
|
||||
```
|
||||
|
||||
### `security_opt`
|
||||
### 10.5.28 `security_opt`
|
||||
|
||||
指定容器模板标签 (label) 机制的默认属性 (用户、角色、类型、级别等)。例如配置标签的用户名和角色名。
|
||||
|
||||
@@ -415,7 +415,7 @@ security_opt:
|
||||
- label:role:ROLE
|
||||
```
|
||||
|
||||
### `stop_signal`
|
||||
### 10.5.29 `stop_signal`
|
||||
|
||||
设置另一个信号来停止容器。在默认情况下使用的是 SIGTERM 停止容器。
|
||||
|
||||
@@ -423,7 +423,7 @@ security_opt:
|
||||
stop_signal: SIGUSR1
|
||||
```
|
||||
|
||||
### `sysctls`
|
||||
### 10.5.30 `sysctls`
|
||||
|
||||
配置容器内核参数。
|
||||
|
||||
@@ -437,7 +437,7 @@ sysctls:
|
||||
- net.ipv4.tcp_syncookies=0
|
||||
```
|
||||
|
||||
### `ulimits`
|
||||
### 10.5.31 `ulimits`
|
||||
|
||||
指定容器的 ulimits 限制值。
|
||||
|
||||
@@ -451,7 +451,7 @@ sysctls:
|
||||
hard: 40000
|
||||
```
|
||||
|
||||
### `volumes`
|
||||
### 10.5.32 `volumes`
|
||||
|
||||
数据卷所挂载路径设置。可以设置为宿主机路径 (`HOST:CONTAINER`) 或者数据卷名称 (`VOLUME:CONTAINER`),并且可以设置访问模式 (`HOST:CONTAINER:ro`)。
|
||||
|
||||
@@ -477,7 +477,7 @@ volumes:
|
||||
mysql_data:
|
||||
```
|
||||
|
||||
### 其它指令
|
||||
### 10.5.33 其它指令
|
||||
|
||||
此外,还有包括 `domainname, entrypoint, hostname, ipc, mac_address, privileged, read_only, shm_size, restart, stdin_open, tty, user, working_dir` 等指令,基本跟 `docker run` 中对应参数的功能一致。
|
||||
|
||||
@@ -537,7 +537,7 @@ stdin_open: true
|
||||
tty: true
|
||||
```
|
||||
|
||||
### 读取变量
|
||||
### 10.5.34 读取变量
|
||||
|
||||
Compose 模板文件支持动态读取主机的系统环境变量和当前目录下的 `.env` 文件中的变量。
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
本节将使用 Docker Compose 配置并运行一个 **Django + PostgreSQL** 应用。笔者不仅会介绍具体步骤,还会解释每个配置项的作用,以及开发环境和生产环境的差异。
|
||||
|
||||
### 架构概览
|
||||
### 10.6.1 架构概览
|
||||
|
||||
在开始之前,先看整体架构 (如图 10-1 所示):
|
||||
|
||||
@@ -40,7 +40,7 @@ flowchart TD
|
||||
- 两个服务通过 Docker Compose 自动创建的网络相互通信
|
||||
- `web` 服务可以通过服务名 `db` 访问数据库 (Docker 内置 DNS)
|
||||
|
||||
### 准备工作
|
||||
### 10.6.2 准备工作
|
||||
|
||||
创建一个项目目录并进入:
|
||||
|
||||
@@ -50,7 +50,7 @@ $ mkdir django-docker && cd django-docker
|
||||
|
||||
我们需要创建三个文件:`Dockerfile`、`requirements.txt` 和 `compose.yaml`。
|
||||
|
||||
### 步骤 1:创建 Dockerfile
|
||||
### 10.6.3 步骤 1:创建 Dockerfile
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
@@ -90,7 +90,7 @@ COPY . /code/
|
||||
|
||||
> 💡 **笔者建议**:总是将变化频率低的文件先复制,变化频率高的后复制。这样可以最大化利用 Docker 的构建缓存。
|
||||
|
||||
### 步骤 2:创建 requirements.txt
|
||||
### 10.6.4 步骤 2:创建 requirements.txt
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
@@ -108,7 +108,7 @@ gunicorn>=21.0,<22.0
|
||||
| `psycopg[binary]` | PostgreSQL 数据库驱动 (推荐使用 psycopg 3)|
|
||||
| `gunicorn` | 生产环境 WSGI 服务器 (可选,开发时可不用)|
|
||||
|
||||
### 步骤 3:创建 compose.yaml
|
||||
### 10.6.5 步骤 3:创建 compose.yaml
|
||||
|
||||
配置如下:
|
||||
|
||||
@@ -192,7 +192,7 @@ web:
|
||||
| `depends_on` + `healthcheck` | 启动顺序 | 确保数据库就绪后 Django 才启动,避免连接错误 |
|
||||
| `environment` | 环境变量 | 推荐用环境变量管理配置,避免硬编码 |
|
||||
|
||||
### 步骤 4:创建 Django 项目
|
||||
### 10.6.6 步骤 4:创建 Django 项目
|
||||
|
||||
运行以下命令创建新的 Django 项目:
|
||||
|
||||
@@ -225,7 +225,7 @@ django-docker/
|
||||
|
||||
> 💡 **Linux 用户注意**:如果遇到权限问题,执行 `sudo chown -R $USER:$USER .`
|
||||
|
||||
### 步骤 5:配置数据库连接
|
||||
### 10.6.7 步骤 5:配置数据库连接
|
||||
|
||||
修改 `mysite/settings.py`,配置数据库连接:
|
||||
|
||||
@@ -252,7 +252,7 @@ ALLOWED_HOSTS = ['*']
|
||||
|
||||
在 Docker Compose 中,各服务通过服务名相互访问。Docker 内置的 DNS 会将 `db` 解析为 db 服务容器的 IP 地址。这是 Docker Compose 的核心功能之一。
|
||||
|
||||
### 步骤 6:启动应用
|
||||
### 10.6.8 步骤 6:启动应用
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -275,7 +275,7 @@ web-1 | Starting development server at http://0.0.0.0:8000/
|
||||
|
||||
打开浏览器访问 http://localhost:8000,可以看到 Django 欢迎页面!
|
||||
|
||||
### 常用开发命令
|
||||
### 10.6.9 常用开发命令
|
||||
|
||||
在另一个终端窗口执行:
|
||||
|
||||
@@ -299,7 +299,7 @@ $ docker compose exec db psql -U django_user -d django_db
|
||||
|
||||
> 💡 笔者建议使用 `exec` 而不是 `run`。`exec` 在已运行的容器中执行命令,`run` 会创建新容器。
|
||||
|
||||
### 常见问题排查
|
||||
### 10.6.10 常见问题排查
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -338,7 +338,7 @@ $ docker compose logs db
|
||||
$ sudo chown -R $USER:$USER .
|
||||
```
|
||||
|
||||
### 开发 vs 生产:关键差异
|
||||
### 10.6.11 开发 vs 生产:关键差异
|
||||
|
||||
笔者特别提醒,本节的配置是 **开发环境** 配置。生产环境需要以下调整:
|
||||
|
||||
@@ -366,7 +366,7 @@ services:
|
||||
|
||||
```
|
||||
|
||||
### 延伸阅读
|
||||
### 10.6.12 延伸阅读
|
||||
|
||||
- [Compose 模板文件详解](10.5_compose_file.md):深入理解 Compose 文件的所有配置项
|
||||
- [使用 WordPress](10.8_wordpress.md):另一个 Compose 实战案例
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
本节使用 Docker Compose 配置并运行一个 **Rails + PostgreSQL** 应用。
|
||||
|
||||
### 架构概览
|
||||
### 10.7.1 架构概览
|
||||
|
||||
如图 10-2 所示,Rails 与 PostgreSQL 在同一 Compose 网络中协同工作。
|
||||
|
||||
@@ -33,7 +33,7 @@ flowchart TD
|
||||
|
||||
图 10-2 Rails + PostgreSQL 的 Compose 架构
|
||||
|
||||
### 准备工作
|
||||
### 10.7.2 准备工作
|
||||
|
||||
创建项目目录:
|
||||
|
||||
@@ -43,7 +43,7 @@ $ mkdir rails-docker && cd rails-docker
|
||||
|
||||
需要创建三个文件:`Dockerfile`、`Gemfile` 和 `compose.yaml`。
|
||||
|
||||
### 步骤 1:创建 Dockerfile
|
||||
### 10.7.3 步骤 1:创建 Dockerfile
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
@@ -80,7 +80,7 @@ COPY . /myapp
|
||||
| `nodejs` | Rails Asset Pipeline 需要 |
|
||||
| 先复制 Gemfile | 只有依赖变化时才重新 `bundle install` |
|
||||
|
||||
### 步骤 2:创建 Gemfile
|
||||
### 10.7.4 步骤 2:创建 Gemfile
|
||||
|
||||
创建一个初始的 `Gemfile`,稍后会被 `rails new` 覆盖:
|
||||
|
||||
@@ -95,7 +95,7 @@ gem 'rails', '~> 7.1'
|
||||
$ touch Gemfile.lock
|
||||
```
|
||||
|
||||
### 步骤 3:创建 compose.yaml
|
||||
### 10.7.5 步骤 3:创建 compose.yaml
|
||||
|
||||
配置如下:
|
||||
|
||||
@@ -133,7 +133,7 @@ volumes:
|
||||
| `depends_on: db` | 确保数据库先启动 |
|
||||
| `DATABASE_URL` | Rails 12-factor 风格的数据库配置 |
|
||||
|
||||
### 步骤 4:生成 Rails 项目
|
||||
### 10.7.6 步骤 4:生成 Rails 项目
|
||||
|
||||
使用 `docker compose run` 生成项目骨架:
|
||||
|
||||
@@ -160,7 +160,7 @@ compose.yaml bin db public
|
||||
|
||||
> ⚠️ **Linux 用户**:如遇权限问题,执行 `sudo chown -R $USER:$USER .`
|
||||
|
||||
### 步骤 5:重新构建镜像
|
||||
### 10.7.7 步骤 5:重新构建镜像
|
||||
|
||||
由于生成了新的 Gemfile,需要重新构建镜像以安装完整依赖:
|
||||
|
||||
@@ -168,7 +168,7 @@ compose.yaml bin db public
|
||||
$ docker compose build
|
||||
```
|
||||
|
||||
### 步骤 6:配置数据库连接
|
||||
### 10.7.8 步骤 6:配置数据库连接
|
||||
|
||||
修改 `config/database.yml`:
|
||||
|
||||
@@ -192,7 +192,7 @@ production:
|
||||
|
||||
> 💡 使用 `DATABASE_URL` 环境变量配置数据库,符合 12-factor 应用原则,便于在不同环境间切换。
|
||||
|
||||
### 步骤 7:启动应用
|
||||
### 10.7.9 步骤 7:启动应用
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -212,7 +212,7 @@ web-1 | Puma starting in single mode...
|
||||
web-1 | * Listening on http://0.0.0.0:3000
|
||||
```
|
||||
|
||||
### 步骤 8:创建数据库
|
||||
### 10.7.10 步骤 8:创建数据库
|
||||
|
||||
在另一个终端执行:
|
||||
|
||||
@@ -224,7 +224,7 @@ Created database 'myapp_test'
|
||||
|
||||
访问 http://localhost:3000 查看 Rails 欢迎页面。
|
||||
|
||||
### 常用开发命令
|
||||
### 10.7.11 常用开发命令
|
||||
|
||||
运行以下命令:
|
||||
|
||||
@@ -250,7 +250,7 @@ $ docker compose exec web rails generate scaffold Post title:string body:text
|
||||
$ docker compose exec web bash
|
||||
```
|
||||
|
||||
### 常见问题
|
||||
### 10.7.12 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -281,7 +281,7 @@ $ docker compose exec web rm -f tmp/pids/server.pid
|
||||
$ docker compose run --rm web bundle update
|
||||
```
|
||||
|
||||
### 开发 vs 生产
|
||||
### 10.7.13 开发 vs 生产
|
||||
|
||||
相关信息如下表:
|
||||
|
||||
@@ -292,7 +292,7 @@ $ docker compose run --rm web bundle update
|
||||
| 静态资源 | 动态编译 | 预编译 (`rails assets:precompile`) |
|
||||
| 数据库密码 | 明文配置 | 使用 Secrets 管理 |
|
||||
|
||||
### 延伸阅读
|
||||
### 10.7.14 延伸阅读
|
||||
|
||||
- [使用 Django](10.6_django.md):Python Web 框架实战
|
||||
- [Compose 模板文件](10.5_compose_file.md):配置详解
|
||||
|
||||
@@ -4,7 +4,7 @@ WordPress 是全球最流行的内容管理系统 (CMS)。使用 Docker Compose
|
||||
|
||||
---
|
||||
|
||||
### 项目结构
|
||||
### 10.8.1 项目结构
|
||||
|
||||
如下代码块所示,展示了相关示例:
|
||||
|
||||
@@ -18,7 +18,7 @@ wordpress/
|
||||
|
||||
---
|
||||
|
||||
### 编写 `compose.yaml`
|
||||
### 10.8.2 编写 `compose.yaml`
|
||||
|
||||
这是一个生产可用的最小化配置:
|
||||
|
||||
@@ -79,7 +79,7 @@ networks:
|
||||
|
||||
---
|
||||
|
||||
### 配置文件详解
|
||||
### 10.8.3 配置文件详解
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -115,7 +115,7 @@ max_execution_time = 600
|
||||
|
||||
---
|
||||
|
||||
### 启动与运行
|
||||
### 10.8.4 启动与运行
|
||||
|
||||
1. 启动服务:
|
||||
|
||||
@@ -134,7 +134,7 @@ $ docker compose logs -f
|
||||
|
||||
---
|
||||
|
||||
### 生产环境最佳实践
|
||||
### 10.8.5 生产环境最佳实践
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -192,7 +192,7 @@ WordPress 支持 Redis 缓存以提高性能。
|
||||
|
||||
---
|
||||
|
||||
### 常见问题
|
||||
### 10.8.6 常见问题
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
@@ -214,7 +214,7 @@ $ docker compose restart wordpress
|
||||
|
||||
---
|
||||
|
||||
### 延伸阅读
|
||||
### 10.8.7 延伸阅读
|
||||
|
||||
- [Compose 模板文件](10.5_compose_file.md):深入了解配置项
|
||||
- [数据卷](../08_data_network/data/volume.md):理解数据持久化
|
||||
|
||||
Reference in New Issue
Block a user