mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-04-15 20:55:24 +00:00
Fix guide issues
This commit is contained in:
@@ -4,9 +4,11 @@ GitHub [Actions](https://github.com/features/actions) 是 GitHub 推出的一款
|
||||
|
||||
我们可以在每个 `job` 的 `step` 中使用 Docker 执行构建步骤。
|
||||
|
||||
## 21.2.1 最小可用示例
|
||||
### 21.2.1 最小可用示例
|
||||
|
||||
在仓库根目录创建 `/.github/workflows/ci.yml`:
|
||||
更多语法、权限模型和可用 action,请以 [GitHub Actions 官方文档](https://docs.github.com/en/actions) 为准。
|
||||
|
||||
在仓库根目录创建 `.github/workflows/ci.yml`:
|
||||
|
||||
```yaml
|
||||
name: CI
|
||||
@@ -32,7 +34,7 @@ jobs:
|
||||
```
|
||||
该示例会在 GitHub Actions 中构建当前仓库的 Docker 镜像(不推送到 registry)。
|
||||
|
||||
## 21.2.2 最佳实践
|
||||
### 21.2.2 最佳实践
|
||||
|
||||
* 固定 action 的主版本(例如 `@v4` / `@v6`),避免使用 `@master` 这类浮动引用。
|
||||
* 设置最小权限(例如 `contents: read`),需要写入权限时再打开。
|
||||
@@ -46,7 +48,3 @@ jobs:
|
||||
with:
|
||||
args: go version
|
||||
```
|
||||
|
||||
## 21.2.3 参考资料
|
||||
|
||||
* [Actions Docs](https://docs.github.com/en/actions)
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
本小节以 `GitHub` + `Drone` 来演示 `Drone` 的工作流程。
|
||||
当然在实际开发过程中,你的代码也许不在 GitHub 托管,那么你可以尝试使用 `Gogs` + `Drone` 来进行 CI/CD。
|
||||
|
||||
## 21.3.1 关联项目
|
||||
### 21.3.1 关联项目
|
||||
|
||||
在 GitHub 新建一个名为 `drone-demo` 的仓库。
|
||||
|
||||
打开我们已经部署好的 Drone 网站或者 [Drone Cloud](https://cloud.drone.io),
|
||||
使用 GitHub 账号登录,在界面中关联刚刚新建的 `drone-demo` 仓库。
|
||||
|
||||
## 21.3.2 编写项目源代码
|
||||
### 21.3.2 编写项目源代码
|
||||
|
||||
初始化一个 git 仓库:
|
||||
|
||||
@@ -71,7 +71,7 @@ trigger:
|
||||
└── app.go
|
||||
```
|
||||
|
||||
## 21.3.3 推送项目源代码到 GitHub
|
||||
### 21.3.3 推送项目源代码到 GitHub
|
||||
|
||||
```bash
|
||||
git add .
|
||||
@@ -81,7 +81,7 @@ git commit -m "test drone ci"
|
||||
git push origin master
|
||||
```
|
||||
|
||||
## 21.3.4 查看项目构建过程及结果
|
||||
### 21.3.4 查看项目构建过程及结果
|
||||
|
||||
打开我们部署好的 `Drone` 网站或者 Drone Cloud,即可看到构建结果。
|
||||
|
||||
@@ -89,9 +89,3 @@ git push origin master
|
||||
|
||||
当然我们也可以把构建结果上传到 GitHub、Docker Registry、
|
||||
云服务商提供的对象存储,或者生产环境中。
|
||||
|
||||
## 21.3.5 参考链接
|
||||
|
||||
* [Drone Github](https://github.com/drone/drone)
|
||||
* [Drone 文档](https://docs.drone.io/)
|
||||
* [Drone 示例](https://github.com/docker-practice/drone-demo)
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
## 21.4 Drone Demo
|
||||
|
||||
## 21.4.1 Demo 项目说明
|
||||
### 21.4.1 Demo 项目说明
|
||||
|
||||
这是一个基于 Go 语言编写的简单 Web 应用示例,用于演示 Drone CI 的持续集成流程。
|
||||
|
||||
## 21.4.2 目录结构
|
||||
### 21.4.2 目录结构
|
||||
|
||||
* `drone_demo.app.go`:简单的 Go Web 服务器代码。
|
||||
* `drone_demo.drone.yml`:Drone CI 的配置文件,定义了构建和测试流程。
|
||||
|
||||
## 21.4.3 如何使用
|
||||
### 21.4.3 如何使用
|
||||
|
||||
1. 确保本地已安装 Docker 环境。
|
||||
2. 将示例文件重命名为 Drone 期望的文件名:
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
本节关注一个核心目标:**把“开发依赖”放进容器,把“源码编辑体验”留在本地 IDE**。
|
||||
|
||||
## 21.5.1 适用场景
|
||||
### 21.5.1 适用场景
|
||||
|
||||
* 团队希望统一开发环境(Go/Node/Python 版本、系统依赖、编译链)。
|
||||
* 本地系统不方便安装依赖(例如 Windows、公司管控环境)。
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
不太适合的场景:强依赖本机 GPU/USB 设备、或需要非常低延迟文件 IO 的工程(此时可能需要额外调优挂载/同步策略)。
|
||||
|
||||
## 21.5.2 最小可用模式:docker compose + 开发容器
|
||||
### 21.5.2 最小可用模式:docker compose + 开发容器
|
||||
|
||||
下面用一个“长期运行的开发容器”作为例子(以 Go 为例,你可以替换为 Node/Python)。
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
这个模式的优点是“简单直接、IDE 无关”,缺点是 IDE 需要额外配置
|
||||
(例如配置远程解释器/语言服务,或使用 VS Code Dev Containers)。
|
||||
|
||||
## 21.5.3 目录挂载与权限建议
|
||||
### 21.5.3 目录挂载与权限建议
|
||||
|
||||
* Linux 下如果遇到容器内写文件权限问题,优先确保容器内用户与宿主机 UID/GID 对齐。
|
||||
VS Code Dev Containers 支持自动处理;手写 Dockerfile/compose 时也可以显式设置用户。
|
||||
|
||||
@@ -5,12 +5,12 @@ VS Code 的 [Dev Containers](https://code.visualstudio.com/docs/devcontainers/co
|
||||
|
||||
本节提供一个最小可用示例:把任意项目(以 Go 为例)变成“打开即开发”的容器化环境。
|
||||
|
||||
## 21.6.1 前置条件
|
||||
### 21.6.1 前置条件
|
||||
|
||||
* 安装 Docker Desktop(或 Linux 上的 Docker Engine)。
|
||||
* VS Code 安装扩展:Dev Containers(`ms-vscode-remote.remote-containers`)。
|
||||
|
||||
## 21.6.2 最小示例:.devcontainer/devcontainer.json
|
||||
### 21.6.2 最小示例:.devcontainer/devcontainer.json
|
||||
|
||||
在项目根目录创建 `.devcontainer/devcontainer.json`:
|
||||
|
||||
@@ -40,7 +40,7 @@ VS Code 会拉取镜像并启动容器,随后你就可以在容器内运行:
|
||||
go test ./...
|
||||
```
|
||||
|
||||
## 21.6.3 结合 Docker Compose(可选)
|
||||
### 21.6.3 结合 Docker Compose(可选)
|
||||
|
||||
如果项目同时依赖数据库/缓存(例如 Postgres/Redis),可以使用 `dockerComposeFile`
|
||||
把依赖一起拉起。
|
||||
|
||||
Reference in New Issue
Block a user