# Ultralytics YOLO 🚀, AGPL-3.0 license # Builds ultralytics/ultralytics:latest images on DockerHub https://hub.docker.com/r/ultralytics name: Publish Docker Images on: push: branches: [main] workflow_dispatch: inputs: image: type: choice description: Select Docker Image options: - Arm64 - Jetson - CPU - GPU jobs: docker: if: github.repository == 'ultralytics/ultralytics' name: Push Docker image to Docker Hub runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push arm64 image if: github.event_name == 'push' || github.event.inputs.image == 'Arm64' uses: docker/build-push-action@v4 continue-on-error: true with: context: . platforms: linux/arm64 file: docker/Dockerfile-arm64 push: true tags: ultralytics/ultralytics:latest-arm64 - name: Build and push Jetson image if: github.event_name == 'push' || github.event.inputs.image == 'Jetson' uses: docker/build-push-action@v4 continue-on-error: true with: context: . platforms: linux/arm64 file: docker/Dockerfile-jetson push: true tags: ultralytics/ultralytics:latest-jetson - name: Build and push CPU image if: github.event_name == 'push' || github.event.inputs.image == 'CPU' uses: docker/build-push-action@v4 continue-on-error: true with: context: . file: docker/Dockerfile-cpu push: true tags: ultralytics/ultralytics:latest-cpu - name: Build and push GPU image if: github.event_name == 'push' || github.event.inputs.image == 'GPU' uses: docker/build-push-action@v4 continue-on-error: true with: context: . file: docker/Dockerfile push: true tags: ultralytics/ultralytics:latest