fix: update docker-compose V1 syntax to V2 and add release PDF workflow

Replace remaining docker-compose command references with docker compose (V2).
Add GitHub Actions workflow to auto-generate PDF via mdpress on release.
This commit is contained in:
Baohua Yang
2026-03-19 20:21:06 -07:00
parent af8b922517
commit 0648f63979
6 changed files with 59 additions and 10 deletions

48
.github/workflows/release-pdf.yml vendored Normal file
View File

@@ -0,0 +1,48 @@
name: Build PDF on Release
on:
release:
types: [published]
workflow_dispatch:
permissions:
contents: write
jobs:
build-pdf:
name: Generate PDF
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Chromium
run: |
sudo apt-get update
sudo apt-get install -y chromium-browser
- name: Install mdpress (latest)
run: |
LATEST_TAG=$(curl -fsSL https://api.github.com/repos/yeasy/mdpress/releases/latest | jq -r .tag_name)
VERSION="${LATEST_TAG#v}"
echo "Installing mdpress $VERSION"
curl -fsSL "https://github.com/yeasy/mdPress/releases/download/$LATEST_TAG/mdpress_${VERSION}_linux_amd64.tar.gz" -o mdpress.tar.gz
tar xzf mdpress.tar.gz
sudo mv mdpress /usr/local/bin/
mdpress --version
- name: Build PDF
run: mdpress build --format pdf --output docker_practice.pdf
- name: Upload PDF to Release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: docker_practice.pdf
- name: Upload PDF as artifact
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: docker_practice-pdf
path: docker_practice.pdf

View File

@@ -6,6 +6,7 @@
- Docker 推动了容器技术的标准化 (OCI) 和生态发展
Docker 的核心价值可以用一句话概括**让应用的开发测试部署保持一致同时极大提高资源利用效率** 笔者认为对于现代软件开发者来说Docker 已经不是 要不要学 的问题而是 **必备技能**无论你是前端后端运维还是全栈开发者掌握 Docker 都能让你的工作更高效
---
> 📝 **发现错误或有改进建议** 欢迎提交 [Issue](https://github.com/yeasy/docker_practice/issues) 或 [PR](https://github.com/yeasy/docker_practice/pulls)。

View File

@@ -96,4 +96,4 @@ $ docker network prune
> **🔥 踩坑实录**
>
> 一个新手开发者通过 `docker-compose` 部署了两个容器化服务服务 A 和服务 B他在服务 A 的代码中尝试用 `localhost:3000` 访问服务 B结果始终连接超时这个错误非常隐蔽在本地单机开发时看不出问题因为他可能在同一个进程中测试排查时他错误地认为是防火墙或网络配置问题实际原因是每个容器都有独立的网络命名空间`localhost` 在容器内部只指向容器自己不是宿主机也不是其他容器正确的做法是使用 docker-compose 自动创建的服务名作为主机名`http://service-b:3000``docker-compose` 会自动在网络中注册服务名的 DNS这样容器间通信才能正确解析改动仅需一行代码问题随之消失
> 一个新手开发者通过 `docker compose` 部署了两个容器化服务服务 A 和服务 B他在服务 A 的代码中尝试用 `localhost:3000` 访问服务 B结果始终连接超时这个错误非常隐蔽在本地单机开发时看不出问题因为他可能在同一个进程中测试排查时他错误地认为是防火墙或网络配置问题实际原因是每个容器都有独立的网络命名空间`localhost` 在容器内部只指向容器自己不是宿主机也不是其他容器正确的做法是使用 Compose 自动创建的服务名作为主机名`http://service-b:3000`Compose 会自动在网络中注册服务名的 DNS这样容器间通信才能正确解析改动仅需一行代码问题随之消失

View File

@@ -662,7 +662,7 @@ spec:
```bash
# 1. 开发环境:使用 Bridge 网络
docker network create my-app
docker-compose up # 默认使用 bridge
docker compose up # 默认使用 bridge
# 2. 小规模生产(< 50 节点):使用 Flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

View File

@@ -838,7 +838,7 @@ ENV PATH="/opt/venv/bin:$PATH"
WORKDIR /workspace
```
**docker-compose 用于 Dev Containers**
**Docker Compose 用于 Dev Containers**
```yaml
# .devcontainer/docker-compose.yml

View File

@@ -481,7 +481,7 @@ curl https://docker.training.kodekloud.com/dca-guide
docker build / push / pull / tag
docker run / exec / logs / inspect / ps
docker volume / network / service
docker-compose up / down / logs / ps
docker compose up / down / logs / ps
docker stats / events / inspect
```
@@ -864,10 +864,10 @@ docker volume rm name # 删除卷
docker volume inspect name # 查看卷详情
# Docker Compose
docker-compose up [-d] # 启动服务
docker-compose down # 停止服务
docker-compose ps # 列出服务
docker-compose logs [-f] [service] # 查看日志
docker-compose exec service cmd # 在服务中执行命令
docker-compose build # 构建服务镜像
docker compose up [-d] # 启动服务
docker compose down # 停止服务
docker compose ps # 列出服务
docker compose logs [-f] [service] # 查看日志
docker compose exec service cmd # 在服务中执行命令
docker compose build # 构建服务镜像
```