目录

memos Github Fork 项目后使用 Action 重新构建 Docker 镜像

RT,记录下整个流程

如果不需要可跳过

1、新建令牌(点我)

这里注意下,记得选 Read, Write, Delete

记得创建仓库,在 yml 那步中会用到

回到项目,点击 Setting,点击Secrets and vaiables

然后在 Repository secrets 中添加 DOCKER_HUB_TOKENDOCKER_HUB_USERNAME 这两个密钥

接下来修改这个文件 .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 就可以了,先测试下有没有问题

请先确保你的 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,手动运行