GitHub Actions for Docker — Build and Push
Advertisement
GitHub Actions for Docker — Build and Push
Automate Docker image builds and push to registries using GitHub Actions.
Introduction
GitHub Actions can build Docker images and push them to registries, enabling automated container deployments.
Docker Hub
name: Build and Push to Docker Hub
on:
push:
tags:
- 'v*'
jobs:
build-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/myapp:latest
${{ secrets.DOCKER_USERNAME }}/myapp:${{ github.ref_name }}
GitHub Container Registry
name: Build and Push to GHCR
on:
push:
branches:
- main
jobs:
build-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Log in to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ghcr.io/${{ github.repository }}:latest
FAQ
Q: How do I tag images with git commits? A: Use ${{ github.sha }} in tags to automatically tag with commit SHA.
Q: Can I build for multiple architectures? A: Yes, use platforms: linux/amd64,linux/arm64 in the build action.
Advertisement