我使用GitHub Actions和Docker WatchTower来更新我的图像,当我签入我的软件(不,它不是关键的软件)。更重要的是要有一个精益的CI/CD)。
name: Docker Image CI
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build the Docker image
run: docker build . -t me/myrepo:${{github.run_number}}
#:$(date +%s)
#docker build --rm -t ne/myrepo .
- name: Login to Docker Hub
env:
DOCKER_USER: ${{ secrets.DOCKER_USER }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
run: |
echo $DOCKER_USER
docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
- name: Push the new Tag to Docker Hub
run: |
docker push me/myrepo:${{github.run_number}}
这个工作很好。
但是瞭望塔只能下载一个版本的最新版本,例如latest
。最好的解决方案是我可以在github上保持增量版本,而瞭望塔将采用最高版本。我想它做不到。
- 或
我将最新版本(例如49)标记为latest
。如何使用git hub操作来实现呢?这应该只是给一个构建提供多个标签,不是吗?
嗯,实际上我在提出这个问题时几乎是自己回答的。
简单地创建2个构建和2个映像。一次递增(以便始终可以回滚到旧版本)并更新最新版本。
优先考虑最新的,以便更快地使用。
- name: Build the Docker image
run: docker build . -t me/myrepo:latest
- name: Build the Docker image
run: docker build .
- t我/myrepo: $ {{github.run_number}}
,然后按两次。
- name: Push the also the latest Tag to Docker Hub
run: |
docker push me/myrepo:latest
- name: Push the new Tag to Docker Hub
run: |
docker push me/myrepo:${{github.run_number}}