https://github.com/khs1994-docker/ci
Gogs( GitHub )+Drone+Docker Registry | 私有化的 CI/CD & DevOps 解决方案
https://github.com/khs1994-docker/ci
ci devops drone gogs
Last synced: 9 months ago
JSON representation
Gogs( GitHub )+Drone+Docker Registry | 私有化的 CI/CD & DevOps 解决方案
- Host: GitHub
- URL: https://github.com/khs1994-docker/ci
- Owner: khs1994-docker
- Created: 2017-10-20T04:22:20.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-11-23T01:45:38.000Z (about 1 year ago)
- Last Synced: 2025-04-04T03:11:53.940Z (10 months ago)
- Topics: ci, devops, drone, gogs
- Language: Shell
- Homepage: https://drone.khs1994.com
- Size: 194 KB
- Stars: 36
- Watchers: 4
- Forks: 9
- Open Issues: 6
-
Metadata Files:
- Readme: README.TLS.md
- Changelog: CHANGELOG.md
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 私有化 CI/CD 解决方案 (TLS)
[](https://github.com/khs1994-docker/ci) [](https://gitee.com/khs1994-docker/ci/stargazers)
* [支持文档](docs)
* [问题反馈](https://github.com/khs1994-docker/ci/issues)
## 重要提示
本项目基于 [Drone `2.x`](https://docs.drone.io/) 版本。
## 微信订阅号
关注项目作者微信订阅号,接收项目最新动态
## 内部端口
* `Gogs` **3000** **22**
* `Drone` **8000**
* `Docker Registry` **5000**
## 准备
* 域名
* 公网 IP (推荐,但不是必须)
* `*.CI_DOMAIN` 通配符 TLS 证书 (acme.sh 可以免费申请)或 `git.CI_DOMAIN` `drone.CI_DOMAIN` 网址的 TLS 证书。
## 快速开始
### 初始化
首次使用本项目时,务必执行以下命令完成初始化。
```bash
$ ./ci
```
### 编辑 `.env` 文件
* `CI_HOST` 为主机 IP (建议使用内网 IP, 例如 `192.168.199.100`)
* `CI_DOMAIN` 为服务主域名(例如 `t.khs1994.com`)
### 安全
在 `.env` 文件中配置如下两个变量
* `DRONE_USER_CREATE` Drone 启动时创建的用户
* `DRONE_USER_FILTER` Drone 允许哪些用户注册,留空即表示允许所有用户注册,将会造成资源浪费,**强烈建议** 配置该选项
### 使用 khs1994-docker/lnmp 的 MySQL Redis NGINX 服务(可选项)
修改 `.env` 中的 `CI_INCLUDE` 变量,若 git 使用 Gogs 则只保留 `gogs` 即可,若使用 GitHub,请留空 `CI_INCLUDE=""`。
```bash
CI_INCLUDE="gogs"
```
并按如下内容修改 `.env` 文件
```bash
# CI_GIT_TYPE=gogs
CI_GIT_TYPE=github
```
> 启动之前必须先启动 khs1994-docker/lnmp
```bash
$ ./ci up-tls --config
```
检查 `docker-compose.yml` 配置是否正确,之后启动
```bash
$ ./ci up-tls
```
将生成的 NGINX 配置移入 `khs1994-docker/lnmp` 项目的 NGINX 配置目录
`config/nginx/drone.conf` `config/nginx/gogs.conf`
自行调整 SSL 相关配置。
将 SSL 证书移入 khs1994-docker/lnmp 项目的 NGINX 配置目录的 `ssl` 文件夹内。
注意 SSL 证书文件名必须与 NGINX 配置一致。
NGINX 配置好之后,重启 `khs1994-docker/lnmp`
```bash
$ ./lnmp-docker restart nginx
```
### `443` 端口是否占用
> 若使用 khs1994-docker/lnmp 的 NGINX 服务,请忽略此节。
根据 `443` 端口是否占用情况,使用下面的命令启动 CI `服务`。
* 已占用->实体机运行 NGINX
```bash
$ ./ci up-tls --use-external-nginx=/etc/nginx/conf.d
```
重启 NGINX (`--use-external-nginx` 后边的路径为 NGINX 配置文件所在路径,必须为绝对路径)
* 已占用->容器运行 NGINX
```bash
$ ./ci up-tls --use-external-nginx=/etc/nginx/conf.d
```
重启 NGINX 容器
* 未占用
编辑 `.env` 文件
```bash
CI_INCLUDE="gogs nginx redis mysql"
```
```bash
$ ./ci up-tls [-d] [--reset]
```
## 访问测试
假设 `CI_DOMAIN` 设置为 `t.khs1994.com`
则 Drone 访问地址为 `https://drone.t.khs1994.com`,Gogs 访问地址为 `https://git.t.khs1994.com`
## 错误排查
进入 `logs` 文件夹内,查看日志文件排错。