diff --git a/.dockerignore b/.dockerignore index 4ac1703..f5caf90 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,8 +1,8 @@ .* build bin -Dockerfile -Dockerfile.* +Dockerfile* +docker-compose.yml *.bat LICENSE *.md diff --git a/.github/workflows/docker-build-test.yml b/.github/workflows/docker-build-test.yml index 7a129b4..e6150e4 100644 --- a/.github/workflows/docker-build-test.yml +++ b/.github/workflows/docker-build-test.yml @@ -16,6 +16,10 @@ jobs: - testing/docker-compose.hsqldb.yml - testing/docker-compose.cockroachdb.yml - testing/docker-compose.yugabytedb.yml + dockerfile: + - Dockerfile + - Dockerfile.openj9 + - Dockerfile.graalvm-jvm steps: - uses: actions/checkout@v3 - name: Create Version File @@ -25,6 +29,7 @@ jobs: with: context: . load: true + file: ${{ matrix.dockerfile }} tags: 1337kavin/piped:latest - name: Start Docker-Compose services run: docker-compose -f ${{ matrix.docker-compose-file }} up -d && sleep 5 diff --git a/Dockerfile.graalvm-jvm b/Dockerfile.graalvm-jvm new file mode 100644 index 0000000..3bcd3d2 --- /dev/null +++ b/Dockerfile.graalvm-jvm @@ -0,0 +1,26 @@ +FROM ghcr.io/graalvm/native-image:latest as build + +WORKDIR /app/ + +COPY . /app/ + +RUN --mount=type=cache,target=/root/.gradle/caches/ \ + ./gradlew shadowJar + +RUN jlink \ + --add-modules java.base,java.logging,java.sql,java.management,java.xml,java.naming,java.desktop,jdk.crypto.ec \ + --strip-debug \ + --no-man-pages \ + --no-header-files \ + --compress=2 \ + --output /javaruntime + +FROM debian:stable-slim + +ENV JAVA_HOME=/opt/java/openjdk +ENV PATH "${JAVA_HOME}/bin:${PATH}" +COPY --from=build /javaruntime $JAVA_HOME + +WORKDIR /app/ + +COPY --from=build /app/build/libs/piped-1.0-all.jar .