使用 GITHub 操作使"最新"版本成为旧版本



我使用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}}

最新更新