把github项目同步到cnb, 构建国内可拉取docker image
通过github actions把仓库同步到cnb, 然后在cnb构建docker镜像, 这样国内机器拉取很快, 30几M的总体命令执行速度大概10s

通过本教程, 可以在一次配置的情况下, 之后全部自动同步代码, 自动构建. 并且代码在github和cnb都有, github适合做为主备份, 避免因cnb导致代码丢失. 是比较稳妥的方案.
CNB方
先新建cnb账号
可以微信登录
登录后, 可以新建组织, 不像github默认把用户名作为个人组织, 这里可以自定义.
不过需要注意, 目前只能添加两个组织, 如果是短的, 还需要验证相关域名, 来表示你真的和这个域名有关, 比如com, cn, org, net这些后缀的域名都是可以的.
新建一个cnb仓库
跟github同名就行了. 新建完不用初始化.
新建cnb的token
https://cnb.cool/profile/token
如图一样配置就行了.

记下token
Github方
github添加一个github actions
我命名为sync-cnb.yml
yml
name: Sync to CNB
on: [push]
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
<span class="token punctuation">-</span> <span class="token key atrule">name</span><span class="token punctuation">:</span> Sync to CNB Repository
<span class="token key atrule">run</span><span class="token punctuation">:</span> <span class="token punctuation">|</span><span class="token scalar string">
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</span>

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, 全权限.

配置拉取
如此即可

版权声明:本文为原创文章,版权归 KuDog Xy's Blog 所有,转载请联系博主获得授权。
本文地址:https://blog.148668.xyz/index.php/archives/39/
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。