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 83a49fb..3417a91 100644 --- a/java/Dockerfile +++ b/java/Dockerfile @@ -1,12 +1,16 @@ +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 - -ENV vss.jdbc.url="jdbc:postgresql://postgres:5432/postgres" -ENV vss.jdbc.username=postgres -ENV vss.jdbc.password=YOU_MUST_CHANGE_THIS_PASSWORD +COPY --from=builder /build/app/build/libs/vss-1.0.war /usr/local/tomcat/webapps/vss.war EXPOSE 8080 CMD ["catalina.sh", "run"]