| # This Dockerfile is for Google Cloud Run deployment |
| # See the grails-forge-web-netty subproject for the implementation |
| |
| # Stage 1: Build the JAR |
| FROM gradle:7.6.1 as gradle |
| COPY --chown=gradle . /home/app |
| WORKDIR /home/app |
| RUN gradle grails-forge-web-netty:shadowJar --no-daemon |
| RUN gradle grails-forge-analytics-postgres:jar --no-daemon |
| |
| # Stage 2: Build the native image |
| FROM ghcr.io/graalvm/graalvm-ce:java8-21.1.0 as graalvm |
| COPY --from=gradle /home/app/grails-forge-web-netty/build/libs/*.jar /home/app/server.jar |
| WORKDIR /home/app |
| RUN gu install native-image |
| RUN native-image --no-fallback -cp server.jar |
| |
| # Stage 3: Prepare Server |
| FROM adoptopenjdk/openjdk11:alpine-slim |
| EXPOSE 8080 |
| COPY --from=graalvm /home/app/grails-forge /app/grails-forge |
| ENTRYPOINT ["/app/grails-forge"] |