因为工作需要 用到自定义的 PHP+Openresty 镜像, 所以自建构建了一个镜像存放在dockerhub。

Dockerhub:lilien1010/php_openresty

Dockfile:php_openresty

但是每次在 dockfile 里面添加修改一点东西 都要手动 发布image 到 dockerhub 很费时费力。

所以可以用 github action 来完成自动化的工作。

开通 Dockerhub token

配置 Github 秘钥

把 dockhub 的用户名和 token 填写到 secrets 环境。

配置 Github Action

参考:workflows/push_dockerhub.yml

注意:下面的 DOCKERHUB_USERNAME 和 DOCKERHUB_TOKEN 这两个名字要和在 github repo setting 里面配置的 secrets 要一致。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
name: ci

on:
push:
branches:
- 'master'

jobs:
docker:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: lilien1010/php_openresty:latest