通过github actions把仓库同步到cnb, 然后在cnb构建docker镜像, 这样国内机器拉取很快, 30几M的总体命令执行速度大概10s
通过本教程, 可以在一次配置的情况下, 之后全部自动同步代码, 自动构建. 并且代码在github和cnb都有, github适合做为主备份, 避免因cnb导致代码丢失. 是比较稳妥的方案.
CNB方
先新建cnb账号
https://cnb.cool/
可以微信登录
登录后, 可以新建组织, 不像github默认把用户名作为个人组织, 这里可以自定义.
不过需要注意, 目前只能添加两个组织, 如果是短的, 还需要验证相关域名, 来表示你真的和这个域名有关, 比如com, cn, org, net这些后缀的域名都是可以的.
新建一个cnb仓库
跟github同名就行了. 新建完不用初始化.
新建cnb的token
https://cnb.cool/profile/token
如图一样配置就行了.
记下token
Github方
github添加一个github actions
我命名为sync-cnb.yml
name: Sync to CNB
on: [push]
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Sync to CNB Repository
run: |
docker run --rm \
-v ${{ github.workspace }}:${{ github.workspace }} \
-w ${{ github.workspace }} \
-e PLUGIN_TARGET_URL="https://cnb.cool/组织名/仓库名.git" \
-e PLUGIN_AUTH_TYPE="https" \
-e PLUGIN_USERNAME="cnb" \
-e PLUGIN_PASSWORD=${{ secrets.GIT_PASSWORD }} \
-e PLUGIN_FORCE="true" \
tencentcom/git-sync
github添加密钥
就是上面在cnb生成的token
名称: GIT_PASSWORD
值: {token}
本地
新建一个.cnb.yml
这是告诉cnb需要怎么构建
同名 和 非同名 二选一即可, 我一般用同名.
main:
push:
- services:
- docker
stages:
# 同名镜像构建&推送
- name: docker build
script: docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest .
- name: docker push
script: docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}:latest
# 非同名镜像构建&推送
- name: docker build
script: docker build -t ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}/<image_name>:latest .
- name: docker push
script: docker push ${CNB_DOCKER_REGISTRY}/${CNB_REPO_SLUG_LOWERCASE}/<image_name>:latest
把代码推送到github
本地推送
⬇️
sync-cnb.yml
运行
⬇️
代码推送到cnb
⬇️
cnb构建docker镜像
拉取cnb docker镜像
新建token(私有仓库)
拉取也比较简单, 我这是私有仓库, 所以新建一个token, 全权限.
配置拉取
如此即可
评论区