diff --git a/.github/workflows/build-and-push-java-docker.yml b/.github/workflows/build-and-push-java-docker.yml new file mode 100644 index 0000000..d66c9f4 --- /dev/null +++ b/.github/workflows/build-and-push-java-docker.yml @@ -0,0 +1,29 @@ +name: Build Docker + +on: [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + env: + REGISTRY: ghcr.io + IMAGENAME: ${{ github.event.repository.name }} + TAG: ${{ github.ref_name }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Docker build + uses: mr-smithers-excellent/docker-build-push@v6 + id: build + with: + directory: java + image: ${{ env.IMAGENAME }} + dockerfile: java/Dockerfile + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} diff --git a/java/Dockerfile b/java/Dockerfile index d2ed22e..b78cd15 100644 --- a/java/Dockerfile +++ b/java/Dockerfile @@ -1,15 +1,23 @@ +FROM gradle:jdk17-jammy as builder + +WORKDIR /build +COPY . ./ +RUN gradle wrapper --gradle-version 8.1.1 +RUN ./gradlew build -x test + +########################################################################## # Use official Tomcat base image FROM tomcat:jre17 # Copy WAR file -COPY app/build/libs/vss-1.0.war /usr/local/tomcat/webapps/vss.war +COPY --from=builder /build/app/build/libs/vss-1.0.war /usr/local/tomcat/webapps/vss.war # All the below are defaults. # Pass real values as env variables. -ENV vss.jdbc.url="jdbc:postgresql://postgres:5432/postgres" -ENV vss.jdbc.username=postgres -ENV vss.jdbc.password=YOU_MUST_CHANGE_THIS_PASSWORD -ENV vss.jwt.pubkey="-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq3t7q3HXhyTWS0nWnY+YIYqEwh/Z/Jtwk0DgkqxF455gdzVlSyLyz5NQfXua1jW437/SMEcbHLWcwjxcowj1jvh9blGpvx+xPNH72J5ruDzrh5fhoq2XC7zNt1UVcjkMIlddP4pwK4fV5FrxOWvmxst3Ngp6ShNg5H0yiMTDBF+QqFhRlVqnO4IrIKczxd/VxCXSKJvKjM357n0PVD1KYFT3FJ5fN+d7Fdko16NbfQDDPsfQchfLAF2Tn/r4KZFzCovCQAt7cKDLHl87TvoHVZ4QBGHDIk/w1cig/gERtTqHECVg+wVctWfx6lb+9YG/4/9UgTQpDxAWVaFVd49CwQIDAQAB-----END PUBLIC KEY-----" +#ENV vss.jdbc.url="jdbc:postgresql://postgres:5432/postgres" +#ENV vss.jdbc.username=postgres +#ENV vss.jdbc.password=YOU_MUST_CHANGE_THIS_PASSWORD +#ENV vss.jwt.pubkey="-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAq3t7q3HXhyTWS0nWnY+YIYqEwh/Z/Jtwk0DgkqxF455gdzVlSyLyz5NQfXua1jW437/SMEcbHLWcwjxcowj1jvh9blGpvx+xPNH72J5ruDzrh5fhoq2XC7zNt1UVcjkMIlddP4pwK4fV5FrxOWvmxst3Ngp6ShNg5H0yiMTDBF+QqFhRlVqnO4IrIKczxd/VxCXSKJvKjM357n0PVD1KYFT3FJ5fN+d7Fdko16NbfQDDPsfQchfLAF2Tn/r4KZFzCovCQAt7cKDLHl87TvoHVZ4QBGHDIk/w1cig/gERtTqHECVg+wVctWfx6lb+9YG/4/9UgTQpDxAWVaFVd49CwQIDAQAB-----END PUBLIC KEY-----" EXPOSE 8080 CMD ["catalina.sh", "run"]