From 47f6cf08515f45c3dc11968a7e15a791875cf59c Mon Sep 17 00:00:00 2001
From: Thomas Kammerlocher
Date: Mon, 27 May 2024 11:13:54 +0200
Subject: [PATCH] Feat/push docker to public repo (#17)
* feat: change gha to push to public docker hub repo
* refactor: removed unused env vars
* added DB_URL to .env to be configurable for local setup, added docker image to compose.yml, testing docker github actions
* removed test branch from action
* added latest to build action
---
.env | 2 ++
.github/workflows/main.yaml | 5 -----
.github/workflows/publish.yaml | 21 ++++++++++-----------
docker-compose.yml | 5 +++--
4 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/.env b/.env
index c83b99c..d9f3ae8 100644
--- a/.env
+++ b/.env
@@ -5,6 +5,7 @@ DB_PASSWORD="metadata1337_"
DB_NAME="cf_token_metadata_registry"
DB_HOST='db'
DB_PORT='5432'
+DB_URL=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
# API Details
API_EXPOSED_PORT='8080'
@@ -12,3 +13,4 @@ API_LOCAL_BIND_PORT='18080'
# Whether the github scheduled job should run on the api or not
TOKEN_METADATA_SYNC_JOB='true'
+API_IMAGE_TAG=latest
\ No newline at end of file
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index 25de906..de5b82e 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -5,11 +5,6 @@ on:
branches: [ main ]
workflow_dispatch:
-env:
- PRIVATE_MVN_REGISTRY_TOKEN: ${{ secrets.GITLAB_PKG_REGISTRY_TOKEN }}
- PRIVATE_MVN_REGISTRY_URL: ${{ secrets.GITLAB_MAVEN_REGISTRY_URL }}
- PRIVATE_DOCKER_REGISTRY_URL: ${{ secrets.GITLAB_DOCKER_REGISTRY_URL }}
-
jobs:
build:
runs-on: ubuntu-latest
diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
index a84a9c9..9c82f8d 100644
--- a/.github/workflows/publish.yaml
+++ b/.github/workflows/publish.yaml
@@ -7,9 +7,9 @@ on:
workflow_dispatch:
env:
- PRIVATE_DOCKER_REGISTRY_URL: ${{ secrets.GITLAB_DOCKER_REGISTRY_URL }}
- PRIVATE_DOCKER_REGISTRY_USER: Deploy-Token
- PRIVATE_DOCKER_REGISTRY_PASS: ${{ secrets.GITLAB_PKG_REGISTRY_TOKEN }}
+ DOCKER_REPO: cardanofoundation
+ DOCKER_REGISTRY_USER: ${{ secrets.DOCKERHUB_USERNAME }}
+ DOCKER_REGISTRY_PASS: ${{ secrets.DOCKERHUB_TOKEN }}
jobs:
@@ -61,9 +61,8 @@ jobs:
- name: Private Docker Hub Login
uses: docker/login-action@v2
with:
- registry: ${{ env.PRIVATE_DOCKER_REGISTRY_URL }}
- username: ${{ env.PRIVATE_DOCKER_REGISTRY_USER }}
- password: ${{ env.PRIVATE_DOCKER_REGISTRY_PASS }}
+ username: ${{ env.DOCKER_REGISTRY_USER }}
+ password: ${{ env.DOCKER_REGISTRY_PASS }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
@@ -76,7 +75,7 @@ jobs:
context: api
push: true
tags: |
- ${{ env.PRIVATE_DOCKER_REGISTRY_URL }}/${{ env.APP_NAME }}:${{ env.ARTIFACT_VERSION }}
+ ${{ env.DOCKER_REPO }}/${{ env.APP_NAME }}:${{ env.ARTIFACT_VERSION }} , ${{ env.DOCKER_REPO }}/${{ env.APP_NAME }}:latest
job:
runs-on: ubuntu-latest
@@ -99,9 +98,8 @@ jobs:
- name: Private Docker Hub Login
uses: docker/login-action@v2
with:
- registry: ${{ env.PRIVATE_DOCKER_REGISTRY_URL }}
- username: ${{ env.PRIVATE_DOCKER_REGISTRY_USER }}
- password: ${{ env.PRIVATE_DOCKER_REGISTRY_PASS }}
+ username: ${{ env.DOCKER_REGISTRY_USER }}
+ password: ${{ env.DOCKER_REGISTRY_PASS }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
@@ -114,4 +112,5 @@ jobs:
context: job
push: true
tags: |
- ${{ env.PRIVATE_DOCKER_REGISTRY_URL }}/${{ env.APP_NAME }}:${{ env.ARTIFACT_VERSION }}
+ ${{ env.DOCKER_REPO }}/${{ env.APP_NAME }}:${{ env.ARTIFACT_VERSION }} , ${{ env.DOCKER_REPO }}/${{ env.APP_NAME }}:latest
+
diff --git a/docker-compose.yml b/docker-compose.yml
index 9a91932..a5592ad 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -3,7 +3,7 @@ services:
db:
image: postgres:15
ports:
- - "${DB_PORT}:${DB_PORT}"
+ - "${DB_PORT}:5432"
environment:
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
volumes:
@@ -15,13 +15,14 @@ services:
retries: 10
restart: on-failure
api:
+ image: cardanofoundation/cf-token-metadata-registry-api:${API_IMAGE_TAG}
build:
context: .
dockerfile: api/compose.dockerfile
ports:
- "${API_LOCAL_BIND_PORT}:${API_EXPOSED_PORT}"
environment:
- DB_URL: "jdbc:postgresql://db:${DB_PORT}/${DB_NAME}"
+ DB_URL: "${DB_URL}"
DB_USERNAME: "${DB_USERNAME}"
DB_PASSWORD: "${DB_PASSWORD}"
TOKEN_METADATA_SYNC_JOB: "${TOKEN_METADATA_SYNC_JOB}"