GitHub Actions for Docker — Build and Push

Sanjeev SharmaSanjeev Sharma
2 min read

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

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro