change Dockerfile for kontor-spring to multistage and add kontor-javalin
This commit is contained in:
@@ -113,6 +113,23 @@ services:
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
kontor-javalin:
|
||||
build:
|
||||
context: ./kontor-javalin
|
||||
dockerfile: Dockerfile
|
||||
tags:
|
||||
- kontor-javalin:0.2.0-SNAPSHOT
|
||||
image: kontor-javalin:0.2.0-SNAPSHOT
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- database
|
||||
- integration
|
||||
- frontend
|
||||
ports:
|
||||
- 8400:8400
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
networks:
|
||||
integration:
|
||||
|
||||
@@ -1,5 +1,28 @@
|
||||
FROM alpine/java:21-jdk
|
||||
# ----------------------------------------------------------------------- #
|
||||
FROM gradle:9.2.1-jdk AS builder
|
||||
WORKDIR /
|
||||
ADD build/libs/kontor-spring-0.2.0-SNAPSHOT.jar app.jar
|
||||
EXPOSE 8000
|
||||
CMD ["java", "-jar", "-Dspring.profiles.active=prod", "-Dvaadin.productionMode=true", "app.jar"]
|
||||
COPY ./api/src/main/ ./api/src/main/
|
||||
COPY ./api/build.gradle ./api/
|
||||
COPY ./models/src/main/ ./models/src/main/
|
||||
COPY ./models/build.gradle ./models/
|
||||
COPY ./services/src/main/ ./services/src/main/
|
||||
COPY ./services/build.gradle ./services/
|
||||
COPY ./build.gradle ./
|
||||
COPY ./gradle.properties ./
|
||||
COPY ./settings.gradle ./
|
||||
COPY ./gradle/libs.versions.toml ./gradle/
|
||||
RUN gradle build --no-daemon
|
||||
|
||||
# ----------------------------------------------------------------------- #
|
||||
FROM alpine/java:21-jdk AS run
|
||||
|
||||
RUN adduser --system appuser
|
||||
USER appuser
|
||||
|
||||
COPY --from=builder --chown=appuser:appuser /api/build/libs/api-0.2.0-SNAPSHOT.jar app.jar
|
||||
|
||||
EXPOSE 8400
|
||||
USER appuser
|
||||
|
||||
CMD ["java", "-jar", "app.jar"]
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
package de.thpeetz.kontor.api;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import io.javalin.Javalin;
|
||||
import de.thpeetz.kontor.services.api.PersonReader;
|
||||
import io.javalin.Javalin;
|
||||
import java.util.ServiceLoader;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import java.util.ServiceLoader;
|
||||
|
||||
public class Main {
|
||||
private static Logger logger = LoggerFactory.getLogger(Main.class);
|
||||
private static short port = 7312;
|
||||
private static short port = 8400;
|
||||
|
||||
public static void main(String[] args) {
|
||||
var personReader = ServiceLoader.load(PersonReader.class).findFirst().get(); // <-- Getting an implementation
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
FROM alpine/java:21-jdk
|
||||
# ----------------------------------------------------------------------- #
|
||||
FROM gradle:8.7-jdk AS builder
|
||||
WORKDIR /
|
||||
ADD build/libs/kontor-spring-0.2.0-SNAPSHOT.jar app.jar
|
||||
EXPOSE 8000
|
||||
COPY ./src/main/ ./src/main/
|
||||
COPY ./frontend/ ./frontend/
|
||||
COPY ./build.gradle ./
|
||||
COPY ./gradle.properties ./
|
||||
COPY ./settings.gradle ./
|
||||
COPY ./gradle/libs.versions.toml ./gradle/
|
||||
RUN gradle bootJar --no-daemon
|
||||
|
||||
# ----------------------------------------------------------------------- #
|
||||
FROM alpine/java:21-jdk AS run
|
||||
|
||||
RUN adduser --system appuser
|
||||
USER appuser
|
||||
|
||||
COPY --from=builder --chown=appuser:appuser /build/libs/kontor-spring-0.2.0-SNAPSHOT.jar app.jar
|
||||
|
||||
EXPOSE 8100
|
||||
USER appuser
|
||||
CMD ["java", "-jar", "-Dspring.profiles.active=prod", "-Dvaadin.productionMode=true", "app.jar"]
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration>
|
||||
|
||||
<property name="LOGS" value="./logs" />
|
||||
<property name="LOGS" value="./" />
|
||||
|
||||
<appender name="Console"
|
||||
class="ch.qos.logback.core.ConsoleAppender">
|
||||
|
||||
Reference in New Issue
Block a user