如何使用GithubActions构建Docker镜像
## 简介 当下 2024年8月12日,距离中国大陆封锁 `Docker` 已经有一段时间了,此时在
渲染中...
## 简介
当下 2024年8月12日,距离中国大陆封锁 `Docker` 已经有一段时间了,此时在国内进行一些 Docker 镜像的相关操作会非常麻烦,或者说很多时候都会失败,此时不得不想一些别的办法提升办公效率了。
**使用 Github Actions 功能 自动构建 Docker 镜像并推送到 `DockerHub`。**
> PS:仅推荐开源项目使用此方法,私人仓库能不能用该方法、以及如何使用与本文无关。
<!-- more -->
## 构建workflow配置文件
以老狗的开源项目【[Doimage](https://github.com/dingdangdog/Doimage)】为例,配置文件如下:
```yml
name: 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 生成,只需要改一部分内容即可使用。
## 修改配置文件内容
上述配置文件,如果你想要直接使用,可能需要修改一下内容:
1. 项目名称(`镜像名称`)和版本号:我的配置文件中的名称和版本号包括两个,即 `dingdangdog/doimage:1.0.0` 和 `dingdangdog/doimage:latest`,修改为你的项目名和版本号即可;
2. 代码分支:我为了省事,都是使用的主分支,即:`branches: ["main"]`,请按需修改;
3. 环境:为了方便管理密钥,我创建了一个环境 `docker_hub`,因此文件中有配置项:`environment: docker_hub`,请按需修改。
4. 账号密码:自动推送 `dockerHub` 自然需要登录到 Docker,账号密码配置为:`username: ${{ secrets.DOCKER_USERNAME }}` 和 `password: ${{ secrets.DOCKER_PASSWORD }}`,该处取值是在仓库配置中设置的值,请自行设置或修改。
## 运行
将配置文件编写完成后,比如名字为`docker_build.yaml`,其放在仓库的目录应该是:`.github/workflows/docker_build.yaml`,然后将相关代码推送到 Github 即可,GithubAcitons将会开始东运行。
END
评论
登录后查看和发表评论
前往登录