GitHub Action
Build Docker Image and Push to GHCR, Docker Hub, or AWS ECR
Custom Action to build and push Docker images to GitHub Container Registry (ghcr.io), Docker Hub (docker.io), and AWS ECR
Automate your Docker image deployments effortlessly with this custom GitHub Action! 🚀💪
Configure the event using the GitHub Actions on:
clause to determine what triggers builds.
This Action supports both public and private repositories for ghcr, docker, and ecr.
The default registry is ghcr.io.
✅ Streamlined workflow: Say goodbye to tedious configuration and manual image deployments.
✅ Increased efficiency: Focus on developing and let the CI/CD pipeline handle image distribution.
✅ Seamless integration: simplifies container image management.
✅ Default Image Tagging: Out-of-the-box tagging with the below elements.
Target Reference:
Either Branch Name or Tag, depending upon the trigger context.Short SHA
SHA
For detailed usage instructions, refer to the GlueOps Documentation.
name: Build and Push Container to GitHub Container Registry
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Build and Push Container to ghcr.io
uses: GlueOps/[email protected]
name: Build and Push Container to Docker Hub
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Build and Push Container to docker.io
uses: GlueOps/[email protected]
with:
registry: "docker.io"
dockerhub_username: ${{ secrets.DOCKERHUB_USERNAME }}
dockerhub_password: ${{ secrets.DOCKERHUB_PASSWORD }}
name: Build and Push Container to ECR using Access Keys
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Build and Push Container to ECR
uses: GlueOps/[email protected]
with:
registry: "<aws-account-id>.dkr.ecr.<aws-region>.amazonaws.com"
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws_default_region: ${{ env.AWS_REGION}}
Note that additioanl workflow permissions are required to enable use of GitHub OIDC. Additional Documentation for configuration is available in the aws-actions/configure-aws-credentials repository.
name: Build and Push Container to ECR using an IAM Role
on:
pull_request:
types: [opened, synchronize, reopened]
permissions:
id-token: write
contents: read # required because configuring permissions removes all permissions not declared
jobs:
build_and_push:
runs-on: ubuntu-latest
steps:
- name: Build and Push Container to ECR
uses: GlueOps/[email protected]
with:
registry: "<aws-account-id>.dkr.ecr.<aws-region>.amazonaws.com"
aws_role_to_assume: ${{ secrets.AWS_ECR_ROLE_ARN }}
aws_default_region: ${{ env.AWS_REGION}}