RT,记录下整个流程
Hub Docker 新建令牌
如果不需要可跳过
1、新建令牌(点我)
这里注意下,记得选Read, Write, Delete
记得创建仓库,在yml那步中会用到
添加 Token
回到项目,点击 Setting
,点击Secrets and vaiables
然后在 Repository secrets
中添加 DOCKER_HUB_TOKEN
和 DOCKER_HUB_USERNAME
这两个密钥
修改 yml
接下来修改这个文件 .github/workflows/build-and-push-release-image.yml
找到 username: stevenlgtm
修改成你自己的GITHUB用户名
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: eezd
password: ${{ secrets.DOCKER_HUB_TOKEN }}
修改下触发条件,当有 release
被提交时触发。并且在 on
下添加一个 workflow_dispatch:
否则你将会无法手动运行
on:
push:
branches:
# Run on pushing branches like 'v1.0.0', 'v0.22.2rc'
- "v*"
workflow_dispatch:
修改 所有images
,第一行是你Docker Hub的仓库地址,第二行是Github Packages地址
# Metadata for stable versions
- name: Docker meta for stable
id: meta-stable
if: env.PRE_RELEASE == 'false'
uses: docker/metadata-action@v5
with:
images: |
eezd/memos
ghcr.io/eezd/memos
测试运行
接下来点击 Actions—找到你要运行的yml—点击Run workflow就可以了,先测试下有没有问题
获取 tags
请先确保你的Action文件可以正确运行
我们发现 Tags 是空的,我们该如何拉取原仓库的tags呢?
先拉取你Fork仓库
git clone https://github.com/eezd/memos.git
cd memos
然后添加原仓库作为远程
git remote add upstream https://github.com/usememos/memos.git
拉取远程仓库的 tags
git fetch upstream --tags
最后推送 Tags
git push origin --tags
最后
我们刚刚手动编译运行的是 main 分支的 Docker 镜像
如果你想编译个别版本的镜像需要回到哪个版本,修改 yml
,手动运行