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}"