mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-24 10:45:23 +00:00
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:
48
.github/workflows/release-pdf.yml
vendored
Normal file
48
.github/workflows/release-pdf.yml
vendored
Normal 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
|
||||
@@ -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)。
|
||||
|
||||
@@ -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,这样容器间通信才能正确解析。改动仅需一行代码,问题随之消失。
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 # 构建服务镜像
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user