Skip to content

Commit

Permalink
Merge pull request #1 from DNXLabs/feature/registry-workflow
Browse files Browse the repository at this point in the history
Docker Hub and GHCR registry workflow
  • Loading branch information
arthurbdiniz committed Jun 14, 2021
2 parents 32de30e + 8975f78 commit 0daeea7
Show file tree
Hide file tree
Showing 2 changed files with 103 additions and 7 deletions.
106 changes: 99 additions & 7 deletions .github/workflows/registry.yml
Original file line number Diff line number Diff line change
@@ -1,14 +1,34 @@
name: Publish Docker image
name: Build and Push Docker image

on:
push:
tags:
- '*'

jobs:
push_to_ecr:
name: Push Docker image to ECR
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build and export
uses: docker/build-push-action@v2
with:
context: .
tags: dnxsolutions/musketeers:latest
outputs: type=docker,dest=/tmp/musketeers.tar
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: musketeers
path: /tmp/musketeers.tar
ecr:
name: Push to ECR
runs-on: ubuntu-latest
needs: build
container: dnxsolutions/aws:2.1.6-dnx1
steps:
- name: Check out the repo
Expand All @@ -22,15 +42,87 @@ jobs:
- name: Get the tag
id: get_tag
run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
- name: Build, tag, and push image to Amazon public ECR
- name: Download docker artifact
uses: actions/download-artifact@v2
with:
name: musketeers
path: /tmp
- name: Load, tag, and push image
env:
ECR_REGISTRY: public.ecr.aws
ECR_REPOSITORY: dnxsolutions/musketeers
IMAGE_TAG: ${{ steps.get_tag.outputs.tag }}
run: |
apk add docker
aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG .
docker load --input /tmp/musketeers.tar
docker image ls -a
docker tag $ECR_REPOSITORY:latest $ECR_REGISTRY/$ECR_REPOSITORY:latest
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
docker tag $ECR_REPOSITORY:latest $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
docker-hub:
name: Push to Docker Hub
runs-on: ubuntu-latest
needs: build
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DNX_DOCKERHUB_USERNAME }}
password: ${{ secrets.DNX_DOCKERHUB_TOKEN }}
- name: Get the tag
id: get_tag
run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: musketeers
path: /tmp
- name: Load, tag, and push image
env:
DOCKERHUB_REPOSITORY: dnxsolutions/musketeers
IMAGE_TAG: ${{ steps.get_tag.outputs.tag }}
run: |
docker load --input /tmp/musketeers.tar
docker image ls -a
docker push $DOCKERHUB_REPOSITORY:latest
docker tag $DOCKERHUB_REPOSITORY:latest $DOCKERHUB_REPOSITORY:$IMAGE_TAG
docker push $DOCKERHUB_REPOSITORY:$IMAGE_TAG
ghcr:
name: Push to GitHub Registry
runs-on: ubuntu-latest
needs: build
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Get the tag
id: get_tag
run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/}
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: musketeers
path: /tmp
- name: Load, tag, and push image
env:
BASE_REPOSITORY: dnxsolutions/musketeers
GHCR_REPOSITORY: ghcr.io/dnxlabs/musketeers
IMAGE_TAG: ${{ steps.get_tag.outputs.tag }}
run: |
docker load --input /tmp/musketeers.tar
docker image ls -a
docker tag $BASE_REPOSITORY:latest $GHCR_REPOSITORY:latest
docker push $GHCR_REPOSITORY:latest
docker tag $GHCR_REPOSITORY:latest $GHCR_REPOSITORY:$IMAGE_TAG
docker push $GHCR_REPOSITORY:$IMAGE_TAG
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# docker-musketeers
[![Lint](https://github.com/DNXLabs/docker-musketeers/actions/workflows/lint.yml/badge.svg)](https://github.com/DNXLabs/docker-musketeers/actions/workflows/lint.yml)
[![Security](https://github.com/DNXLabs/docker-musketeers/actions/workflows/security.yml/badge.svg)](https://github.com/DNXLabs/docker-musketeers/actions/workflows/security.yml)
[![Build and Push Docker image](https://github.com/DNXLabs/docker-musketeers/actions/workflows/registry.yml/badge.svg)](https://github.com/DNXLabs/docker-musketeers/actions/workflows/registry.yml)


🐳 Lightweight image with essential tools for a [3 Musketeers]() project.

Expand Down

0 comments on commit 0daeea7

Please sign in to comment.