fix(content): harden Docker practice guide

This commit is contained in:
yeasy
2026-06-16 21:23:21 -07:00
parent f4e684afeb
commit 9fdffa9d91
67 changed files with 343 additions and 278 deletions
+3
View File
@@ -72,6 +72,8 @@ jobs:
ghcr.io/${{ github.repository }}:latest
cache-from: type=gha
cache-to: type=gha,mode=max
provenance: mode=max
sbom: true
```
关键说明
@@ -79,6 +81,7 @@ jobs:
* `docker/login-action` 负责认证支持 Docker HubGHCRECR 等主流 Registry
* `cache-from` / `cache-to` 使用 GitHub Actions 原生缓存`type=gha`无需额外配置即可加速增量构建
* 标签同时使用 commit hash `latest`兼顾版本追溯与部署便利
* `provenance: mode=max` `sbom: true` 会把构建来源证明和 SBOM 附加到推送的镜像上只做本地 `load: true` 的构建无法完整保留这些 attestation
### 21.2.3 最佳实践
+2
View File
@@ -7,6 +7,8 @@
本小节以 `GitHub` + `Drone` 来演示 `Drone` 的工作流程
当然在实际开发过程中你的代码也许不在 GitHub 托管那么你可以尝试使用 `Gogs` + `Drone` 来进行 CI/CD
> 安全提示Docker runner 如果挂载宿主机 `/var/run/docker.sock`流水线就具备近似宿主机 root 的控制能力下面配置只适合可信代码单租户本地演示环境生产环境应使用隔离的临时 runner/虚拟机Kubernetes runnerrootless 方案或更严格的权限边界并为不同项目隔离密钥
### 21.3.1 关联项目
GitHub 新建一个名为 `drone-demo` 的仓库
+2 -5
View File
@@ -557,6 +557,8 @@ client-output-buffer-limit pubsub 32mb 8mb 60
**三层微服务架构示例**
> 下面示例聚焦服务拓扑网络健康检查和资源限制为便于阅读密码仍通过环境变量串接生产环境应改用 Compose secrets外部密钥系统或云厂商密钥服务并避免把敏感值写入 `DATABASE_URL` / `REDIS_URL`
```yaml
services:
# 前端服务
@@ -564,7 +566,6 @@ services:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: frontend
ports:
- "3000:3000"
environment:
@@ -586,7 +587,6 @@ services:
build:
context: ./api
dockerfile: Dockerfile
container_name: api
ports:
- "8000:8000"
environment:
@@ -619,7 +619,6 @@ services:
# PostgreSQL 数据库
postgres:
image: postgres:16-alpine
container_name: postgres
environment:
POSTGRES_DB: myappdb
POSTGRES_USER: appuser
@@ -641,7 +640,6 @@ services:
# Redis 缓存
redis:
image: redis:8-alpine
container_name: redis
command: ["sh", "-c", "redis-server --appendonly yes --requirepass \"$$REDIS_PASSWORD\""]
environment:
REDIS_PASSWORD: ${REDIS_PASSWORD:?set REDIS_PASSWORD}
@@ -659,7 +657,6 @@ services:
# Nginx 反向代理
nginx:
image: nginx:alpine
container_name: nginx
ports:
- "80:80"
- "443:443"
+1
View File
@@ -25,6 +25,7 @@ services:
depends_on:
- drone-server
volumes:
# Trusted single-tenant demo only: Docker socket access is host-root equivalent.
- /var/run/docker.sock:/var/run/docker.sock:rw
environment:
- DRONE_RPC_PROTO=http