Skip to content

Commit

Permalink
docker_publish workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
fugerit79 committed Feb 28, 2024
1 parent 89815ab commit 027fb64
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 2 deletions.
3 changes: 2 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@
!target/*-runner
!target/*-runner.jar
!target/lib/*
!target/quarkus-app/*
!target/quarkus-app/*
!src/test/resources/h2init/*
67 changes: 67 additions & 0 deletions .github/workflows/docker_publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# CI with maven build and scan

name: CI docker build

on:
# Trigger analysis when pushing in master or pull requests, and when creating
# a pull request.
push:
branches:
- develop
release:
types: [published]

jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# Shallow clones should be disabled for a better relevancy of analysis
fetch-depth: 0
- name: Echo ref name trigger
run: echo ${{ github.ref_name }}
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'corretto'
cache: 'maven'
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Maven version
run: mvn -v
env:
# Needed to get some information about the pull request, if any
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SonarCloud access token should be generated from https://sonarcloud.io/account/security/
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- name: Build and analyze
run: mvn -B clean package
# using action https://github.com/marketplace/actions/build-and-push-docker-images
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
tags: fugeritorg/fj-daogen-quarkus-demo:${{ github.ref_name }},fugeritorg/fj-daogen-quarkus-demo:latest
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Added

- sample demo app for fj-daogen version 1.5.1
- project based on quarkus 3.8.1
- project based on quarkus 3.8.1
- docker_publish workflow
34 changes: 34 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# fj-daogen-quarkus-demo image build 1.0.0
#
# Public built image form amd64/arm64 linux can be found on repository :
# https://hub.docker.com/repository/docker/fugeritorg/fj-daogen-quarkus-demo/general
#
# create : docker run -it -p 8080:8080 --name fj-daogen-quarkus-demo fugeritorg/fj-daogen-quarkus-demo:latest
# start : docker start fj-daogen-quarkus-demo
# stop : docker stop fj-daogen-quarkus-demo
#
# Image tag :
# docker image tag [image tag] fugeritorg/fj-daogen-quarkus-demo:latest
#
# Change with any base openjdk image is preferred
FROM amazoncorretto:21.0.2-alpine3.19

LABEL org.opencontainers.image.authors="Fugerit" \
org.opencontainers.image.source="Quarkus" \
org.opencontainers.image.revision="1.0.0"

COPY --chown=185:0 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=185:0 target/quarkus-app/*.jar /deployments/
COPY --chown=185:0 target/quarkus-app/app/ /deployments/app/
COPY --chown=185:0 target/quarkus-app/quarkus/ /deployments/quarkus/
RUN mkdir -p src/test/resources/h2init/
COPY --chown=185:0 src/test/resources/h2init/* /deployments/src/test/resources/h2init/

RUN echo "securerandom.source=file:/dev/./urandom" >> /usr/lib/jvm/default-jvm/jre/lib/security/java.security

CMD java -Dfile.encoding="UTF-8" -jar /deployments/quarkus-run.jar

WORKDIR /deployments/

ENTRYPOINT ["java","-jar","/deployments/quarkus-run.jar"]

4 changes: 4 additions & 0 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ quarkus:
driver: org.h2.Driver
url: jdbc:h2:mem:default;DB_CLOSE_DELAY=-1;MODE=PostgreSQL;INIT=RUNSCRIPT FROM './src/test/resources/h2init/init.sql';

"%prod":
datasource:
jdbc:
url: jdbc:h2:mem:default;DB_CLOSE_DELAY=-1;MODE=PostgreSQL;INIT=RUNSCRIPT FROM '/deployments/h2init/init.sql';

0 comments on commit 027fb64

Please sign in to comment.