Docker Authentication
Push images to Docker Hub, GitHub Container Registry, or AWS ECR
GITHUB_TOKEN - no additional secrets needed.
permissions:
contents: write
packages: write # Required for GHCR
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
packages:
- name: my-app
ecosystem: docker
docker:
registry: ghcr.io
image: your-org/your-app
platforms:
- linux/amd64
- linux/arm64
tags:
- latest
- "{version}"
- "{major}.{minor}"
DOCKERHUB_USERNAME and DOCKERHUB_TOKEN- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
packages:
- name: my-app
ecosystem: docker
docker:
registry: docker.io
image: your-username/your-app
tags:
- latest
- "{version}"
- uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- uses: aws-actions/amazon-ecr-login@v2
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
packages:
- name: my-app
ecosystem: docker
docker:
registry: 123456789012.dkr.ecr.us-east-1.amazonaws.com
image: my-app
tags:
- latest
- "{version}"
- uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.GCP_CREDENTIALS }}
- uses: google-github-actions/setup-gcloud@v2
- run: gcloud auth configure-docker us-docker.pkg.dev
- uses: a-line-services/release-pilot@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
packages:
- name: my-app
ecosystem: docker
docker:
registry: us-docker.pkg.dev
image: your-project/your-repo/your-app
tags:
- latest
- "{version}"
Use placeholders to generate tags dynamically:
| Placeholder | Example (v1.2.3) |
|---|---|
{version} |
1.2.3 |
{major} |
1 |
{minor} |
2 |
{patch} |
3 |
| Option | Description | Default |
|---|---|---|
registry |
Registry hostname | docker.io |
image |
Image name (required) | - |
dockerfile |
Path to Dockerfile | Dockerfile |
context |
Build context directory | Package path |
platforms |
Target platforms | - |
buildArgs |
Build-time variables | - |
target |
Multi-stage build target | - |
tags |
Stable release tags | ['latest', '{version}'] |
devTags |
Dev release tags | ['dev', '{version}'] |
push |
Push after build | true |