diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml index e94144e..5898439 100644 --- a/.gitea/workflows/docker-build.yml +++ b/.gitea/workflows/docker-build.yml @@ -1,39 +1,52 @@ name: Docker Build -on: - workflow_dispatch: - -#on: -# push: -# branches: -# - main +"on": + workflow_dispatch: + # Uncomment if you also want auto-builds on pushes: + # push: + # branches: [ "main" ] jobs: docker: runs-on: ubuntu-22.04 + permissions: + contents: read + packages: write + steps: - name: Checkout code uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Log in to Gitea Registry - run: | - echo "${{ secrets.REGISTRY_TOKEN }}" | \ - docker login gitea.cuihang1201.synology.me -u ${{ secrets.REGISTRY_USER }} --password-stdin + uses: docker/login-action@v3 + with: + registry: gitea.cuihang1201.synology.me + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_TOKEN }} - - name: Build Docker image - run: docker build -t gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest . - - - name: Run Docker image - run: | - docker run --name docker_build gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest + - name: Build and push image + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile + push: true + tags: gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest - - name: Push Docker image + # Optional quick health check, runs detached and then cleaned up + - name: Smoke test run: | - docker stop docker_build - docker rm docker_build - docker push gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest - - - name: Clean Docker image on Host + docker run --rm -d --name docker_build \ + gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest + sleep 5 + docker logs docker_build + if: ${{ always() }} + + - name: Cleanup local container/images + if: always() run: | - docker rmi gitea.cuihang1201.synology.me/hangpersonal/docker_build:latest - docker image ls -a \ No newline at end of file + docker rm -f docker_build 2>/dev/null || true + docker image ls -a +