当下 2024年8月12日,距离中国大陆封锁 Docker 已经有一段时间了,此时在国内进行一些 Docker 镜像的相关操作会非常麻烦,或者说很多时候都会失败,此时不得不想一些别的办法提升办公效率了。
使用 Github Actions 功能 自动构建 Docker 镜像并推送到 DockerHub。
PS:仅推荐开源项目使用此方法,私人仓库能不能用该方法、以及如何使用与本文无关。
以老狗的开源项目【Doimage】为例,配置文件如下:
ymlname: Docker Image CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
build:
environment: docker_hub
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Run build
run: npm run build
- name: Build Docker image
run: docker build -t dingdangdog/doimage:1.0.0 -t dingdangdog/doimage:latest .
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Push Docker image
run: |
docker push dingdangdog/doimage:1.0.0
docker push dingdangdog/doimage:latest
- name: Clean up Docker images
run: docker system prune -af
PS:此文件由 ChatGPT 生成,只需要改一部分内容即可使用。
上述配置文件,如果你想要直接使用,可能需要修改一下内容:
镜像名称)和版本号:我的配置文件中的名称和版本号包括两个,即 dingdangdog/doimage:1.0.0 和 dingdangdog/doimage:latest,修改为你的项目名和版本号即可;branches: ["main"],请按需修改;docker_hub,因此文件中有配置项:environment: docker_hub,请按需修改。dockerHub 自然需要登录到 Docker,账号密码配置为:username: ${{ secrets.DOCKER_USERNAME }} 和 password: ${{ secrets.DOCKER_PASSWORD }},该处取值是在仓库配置中设置的值,请自行设置或修改。将配置文件编写完成后,比如名字为docker_build.yaml,其放在仓库的目录应该是:.github/workflows/docker_build.yaml,然后将相关代码推送到 Github 即可,GithubAcitons将会开始东运行。
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!