docker-image.yml 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # This is a basic workflow to help you get started with Actions
  2. name: build docker image
  3. # Controls when the action will run.
  4. on:
  5. push:
  6. branches:
  7. - main
  8. release:
  9. types: [created,published] # 表示在创建新的 Release 时触发
  10. # Allows you to run this workflow manually from the Actions tab
  11. # 可以手动触发
  12. workflow_dispatch:
  13. inputs:
  14. logLevel:
  15. description: 'Log level'
  16. required: true
  17. default: 'warning'
  18. tags:
  19. description: 'Test scenario tags'
  20. jobs:
  21. buildx:
  22. runs-on: ubuntu-latest
  23. steps:
  24. - name: Checkout
  25. uses: actions/checkout@v2
  26. - name: Inject slug/short variables
  27. uses: rlespinasse/github-slug-action@v4
  28. - name: Set up QEMU
  29. uses: docker/setup-qemu-action@v1
  30. - name: Set up Docker Buildx
  31. id: buildx
  32. uses: docker/setup-buildx-action@v1
  33. - name: Available platforms
  34. run: echo ${{ steps.buildx.outputs.platforms }}
  35. - name: Login to DockerHub
  36. uses: docker/login-action@v1
  37. with:
  38. username: ${{ secrets.DOCKERHUB_USERNAME }}
  39. password: ${{ secrets.DOCKERHUB_TOKEN }}
  40. - name: Build and push
  41. uses: docker/build-push-action@v2
  42. with:
  43. context: .
  44. file: ./Dockerfile
  45. # 所需要的体系结构,可以在 Available platforms 步骤中获取所有的可用架构
  46. platforms: linux/amd64,linux/arm64/v8
  47. # 镜像推送时间
  48. push: ${{ github.event_name != 'pull_request' }}
  49. # 给清单打上多个标签
  50. tags: |
  51. ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.GITHUB_REPOSITORY_NAME_PART }}:${{ env.GITHUB_REF_NAME }}
  52. ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.GITHUB_REPOSITORY_NAME_PART }}:latest