From 229f22d5a9087054da8a39696b5ba8163688ab97 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 15 May 2026 00:12:44 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=87=AA=E5=8A=A8=E5=8D=87=E7=BA=A7doc?= =?UTF-8?q?ker-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/auto/docker-compose.yaml | 95 +++++++++++++++++++++++++++++++++ docs/guide/install/auto.md | 60 +++++++++++++++++++++ docs/guide/install/upgrade.md | 48 ----------------- 3 files changed, 155 insertions(+), 48 deletions(-) create mode 100644 docker/auto/docker-compose.yaml create mode 100644 docs/guide/install/auto.md diff --git a/docker/auto/docker-compose.yaml b/docker/auto/docker-compose.yaml new file mode 100644 index 000000000..7a5e93ddd --- /dev/null +++ b/docker/auto/docker-compose.yaml @@ -0,0 +1,95 @@ +version: '3.3' # 兼容旧版docker-compose +services: + certd: + # 镜像 # ↓↓↓↓↓ ---- 镜像版本号,建议改成固定版本号,例如:certd:1.29.0 + image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest + # image: ghcr.io/certd/certd:latest # --------- 如果 报镜像not found,可以尝试其他镜像源 + # image: greper/certd:latest + container_name: certd # 容器名 + restart: unless-stopped # 自动重启 + volumes: + # ↓↓↓↓↓ -------------------------------------------------------- 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下,【您需要定时备份此目录,以保障数据容灾】 + - /data/certd:/app/data # 只要修改冒号前面的,冒号后面的/app/data切记切记不要动 + #- /volume1/docker/certd:/app/data:delegated #群晖使用这个配置 + # ↓↓↓↓↓ -------------------------------------------------------- 如果走时不准,考虑挂载localtime文件 + #- /etc/localtime:/etc/localtime + #- /etc/timezone:/etc/timezone + ports: # 端口映射 + # ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突,可以修改第一个7001为其他不冲突的端口号,第二个7001不要动 + - "7001:7001" + # ↓↓↓↓ ---------------------------------------------------------- https端口,可以根据实际情况,是否暴露该端口 + - "7002:7002" + #↓↓↓↓ -------------------------------------------------------------- 如果出现getaddrinfo EAI_AGAIN 或 getaddrinfo ENOTFOUND 错误,可以尝试设置dns +# dns: +# - 223.5.5.5 # 阿里云公共dns +# - 223.6.6.6 +# # ↓↓↓↓ --------------------------------------------------------- 如果你服务器在腾讯云,可以用这个替换上面阿里云的公共dns +# - 119.29.29.29 # 腾讯云公共dns +# - 182.254.116.116 +# # ↓↓↓↓ --------------------------------------------------------- 如果你服务器部署在国外,可以用这个替换上面阿里云的公共dns +# - 8.8.8.8 # 谷歌公共dns +# - 8.8.4.4 +# extra_hosts: +# # ↓↓↓↓ -------------------------------------------------------- 这里可以配置自定义hosts,外网域名可以指向本地局域网ip地址 +# - "localdomain.com:192.168.1.3" +# # ↓↓↓↓ ------------------------------------------------ 直接使用主机的网络,如果网络问题实在找不到原因,可以尝试打开此参数 +# network_mode: host + labels: + com.centurylinklabs.watchtower.enable: "true" +# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把下面networks的注释放开 +# networks: +# - ip6net + environment: +# ↓↓↓↓ ----------------------------------------------------- 使用上海东八时区 + - TZ=Asia/Shanghai +# 设置环境变量即可自定义certd配置 +# 配置项见: packages/ui/certd-server/src/config/config.default.ts +# 配置规则: certd_ + 配置项, 点号用_代替 +# #↓↓↓↓ ----------------------------- 如果忘记管理员密码,可以设置为true,docker compose up -d 重建容器之后,管理员密码将改成123456,然后请及时修改回false + - certd_system_resetAdminPasswd=false + # ↓↓↓ 要使用ipv6,将此配置修改为:: + - certd_koa_hostname=0.0.0.0 + +# 默认使用sqlite文件数据库,如果需要使用其他数据库,请设置以下环境变量 +# 注意: 选定使用一种数据库之后,不支持更换数据库。 +# 数据库迁移方法:1、使用新数据库重新部署一套,然后将旧数据同步过去,注意flyway_history表的数据不要同步 +# #↓↓↓↓ ----------------------------- 使用postgresql数据库,需要提前创建数据库 +# - certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录 +# - certd_typeorm_dataSource_default_type=postgres # 数据库类型 +# - certd_typeorm_dataSource_default_host=localhost # 数据库地址 +# - certd_typeorm_dataSource_default_port=5433 # 数据库端口 +# - certd_typeorm_dataSource_default_username=postgres # 用户名 +# - certd_typeorm_dataSource_default_password=yourpasswd # 密码 +# - certd_typeorm_dataSource_default_database=certd # 数据库名 + +# #↓↓↓↓ ----------------------------- 使用mysql8数据库,需要提前创建数据库 charset=utf8mb4, collation=utf8mb4_bin +# - certd_flyway_scriptDir=./db/migration-mysql # 升级脚本目录 +# - certd_typeorm_dataSource_default_type=mysql # 数据库类型, 或者 mariadb +# - certd_typeorm_dataSource_default_host=localhost # 数据库地址 +# - certd_typeorm_dataSource_default_port=3306 # 数据库端口 +# - certd_typeorm_dataSource_default_username=root # 用户名 +# - certd_typeorm_dataSource_default_password=yourpasswd # 密码 +# - certd_typeorm_dataSource_default_database=certd # 数据库名 + +# ↓↓↓↓ --------------------------------------------------------- 自动升级,上面certd的版本号要保持为latest + certd-updater: # 添加 Watchtower 服务 + image: containrrr/watchtower:latest + container_name: certd-updater + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock + # 配置 自动更新 + environment: + - WATCHTOWER_CLEANUP=true # 自动清理旧版本容器 + - WATCHTOWER_INCLUDE_STOPPED=false # 不更新已停止的容器 + - WATCHTOWER_LABEL_ENABLE=true # 根据容器标签进行更新 + - WATCHTOWER_POLL_INTERVAL=600 # 每 10 分钟检查一次更新 + + +# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把上面networks的注释放开 +#networks: +# ip6net: +# enable_ipv6: true +# ipam: +# config: +# - subnet: 2001:db8::/64 diff --git a/docs/guide/install/auto.md b/docs/guide/install/auto.md new file mode 100644 index 000000000..393d5b34e --- /dev/null +++ b/docs/guide/install/auto.md @@ -0,0 +1,60 @@ + +## 自动升级配置 + +### 1. 方法一:使用watchtower监控自动升级【推荐】 + +1. 修改docker-compose.yaml文件增加如下配置 +或 [下载完整的自动升级docker-compose.yaml配置](https://gitee.com/certd/certd/raw/v2/docker/auto/docker-compose.yaml) +```yaml +services: + certd: + # 镜像 # ↓↓↓↓↓ ---- 镜像版本号 这里要保持为latest + image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest + ... # 这里是你原来的docker-compose.yaml配置 + + # ↓↓↓↓ --------------------------------------------------------- 增加一个标签,表示certd需要自动升级 + labels: + com.centurylinklabs.watchtower.enable: "true" + +# ↓↓↓↓ --------------------------------------------------------- 自动升级watchtower配置,注意:上面certd的版本号要保持为latest + certd-updater: # 添加 Watchtower 服务 + image: containrrr/watchtower:latest + container_name: certd-updater + restart: unless-stopped + volumes: + - /var/run/docker.sock:/var/run/docker.sock + # 配置 自动更新 + environment: + - WATCHTOWER_CLEANUP=true # 自动清理旧版本容器 + - WATCHTOWER_INCLUDE_STOPPED=false # 不更新已停止的容器 + - WATCHTOWER_LABEL_ENABLE=true # 根据容器标签进行更新 + - WATCHTOWER_POLL_INTERVAL=600 # 每 10 分钟检查一次更新 + +``` + +2. 重启certd容器 +```shell +cd certd +docker compose down +docker compose up -d +``` + + +### 2. 方法二:使用Certd版本监控功能【不太稳定】 + +1. 选择Github-检查Release版本插件 +![](./images/github-release.png) +按如下图填写配置 +![](./images/github-release-2.png) + + +2. 检测到新版本后执行宿主机升级命令: + +```shell +# 拉取最新镜像 +docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest +# 升级容器命令, 替换成你自己的certd更新命令 +export RESTART_CERT='sleep 10; cd ~/deploy/certd/ ; docker compose down; docker compose up -d' +# 构造一个脚本10s后在后台执行,避免容器销毁时执行太快,导致流水线任务无法结束 +nohup sh -c '$RESTART_CERT' >/dev/null 2>&1 & echo '10秒后重启' && exit +``` \ No newline at end of file diff --git a/docs/guide/install/upgrade.md b/docs/guide/install/upgrade.md index cfa38b245..ef930fd17 100644 --- a/docs/guide/install/upgrade.md +++ b/docs/guide/install/upgrade.md @@ -22,51 +22,3 @@ 可以查看最新版本号,以及所有版本的更新日志 [CHANGELOG](../changelogs/CHANGELOG.md) - -## 自动升级配置 - -### 1. 方法一:使用watchtower监控 - -修改docker-compose.yaml文件增加如下配置, 使用watchtower监控自动升级 -```yaml -services: - certd: - ... - labels: - com.centurylinklabs.watchtower.enable: "true" - -# ↓↓↓↓ --------------------------------------------------------- 自动升级,上面certd的版本号要保持为latest - certd-updater: # 添加 Watchtower 服务 - image: containrrr/watchtower:latest - container_name: certd-updater - restart: unless-stopped - volumes: - - /var/run/docker.sock:/var/run/docker.sock - # 配置 自动更新 - environment: - - WATCHTOWER_CLEANUP=true # 自动清理旧版本容器 - - WATCHTOWER_INCLUDE_STOPPED=false # 不更新已停止的容器 - - WATCHTOWER_LABEL_ENABLE=true # 根据容器标签进行更新 - - WATCHTOWER_POLL_INTERVAL=600 # 每 10 分钟检查一次更新 - -``` - - -### 2. 方法二:使用Certd版本监控功能 - -选择Github-检查Release版本插件 -![](./images/github-release.png) -按如下图填写配置 -![](./images/github-release-2.png) - - -检测到新版本后执行宿主机升级命令: - -```shell -# 拉取最新镜像 -docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest -# 升级容器命令, 替换成你自己的certd更新命令 -export RESTART_CERT='sleep 10; cd ~/deploy/certd/ ; docker compose down; docker compose up -d' -# 构造一个脚本10s后在后台执行,避免容器销毁时执行太快,导致流水线任务无法结束 -nohup sh -c '$RESTART_CERT' >/dev/null 2>&1 & echo '10秒后重启' && exit -``` \ No newline at end of file