使用 GitHub Actions 自动化 Docker 工作流程,只需几个简单的步骤即可启动并运行。
设置 GitHub Actions
创建一个工作流程文件,它是一个简单的 YAML 文件,位于repo 的 .github/workflows/ 目录下。
登录github,假定已经有包含Dockerfile和相应生成镜像文件的repo,点击add file-create new file,命名为.github/workflows/docker.yml,文件内容如下:
1 | name: Docker Workflow |
生成镜像并提交到dockerhub
主要工作流程是把repo中的Dockerfile生成镜像并上传到docker.io,由于要使用dockerhub登录帐号和密码,为了不在yml中明文显示,需在repo-settings-secrets and variables-actions页,点击new repo secret,创建DOCKER_USRRNAME和DOCKER_PASSWORD两个变量,内容分别是帐号和密码,以便在yml中使用。
点击repo-actions,新建的yml已经开始执行,
如果有错,会提示,点进去有提示出错原因。本文中的yml内容就是把出错提示交给deepseek一步一步修改而来。
最终成功执行并上传到docker.io。
提交到ghcr.io
建立ghcr.yml,内容如下:
1 | name: Docker Workflow (GHCR) |
文件中的注释会引起执行错误,因此没有注释(注释被当成语句导致出错,走了不少弯路)。
此处的帐号是自动获取的,密码是自动生成的token,不需要手动生成。
把生成的sha当成tag其实并不方便,太长了。
提交的镜像在用户名-pactkages处。