From 2d65a2555fa6548851779dcc6d0895b9b8214f5b Mon Sep 17 00:00:00 2001 From: lingniu Date: Wed, 1 Jul 2026 12:01:47 +0800 Subject: [PATCH] deploy: align container java defaults --- Dockerfile | 2 +- deploy/portainer/docker-compose.yml | 2 +- .../PortainerComposeResourceLimitsTest.java | 11 +++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2e5554d5..1b29b9b8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,7 +5,7 @@ ARG APP_VERSION ENV APP_NAME=${APP_NAME} ENV APP_VERSION=${APP_VERSION} -ENV JAVA_OPTS="" +ENV JAVA_OPTS="--sun-misc-unsafe-memory-access=allow" WORKDIR /app COPY modules/apps/${APP_NAME}/target/${APP_NAME}.jar /app/app.jar diff --git a/deploy/portainer/docker-compose.yml b/deploy/portainer/docker-compose.yml index d5b0fd8d..20cc736f 100644 --- a/deploy/portainer/docker-compose.yml +++ b/deploy/portainer/docker-compose.yml @@ -6,7 +6,7 @@ version: "3.8" # main-0.1.0-SNAPSHOT-22468e7 x-common-env: &common-env TZ: Asia/Shanghai - JAVA_OPTS: ${JAVA_OPTS:--XX:+UseZGC -XX:MaxRAMPercentage=75} + JAVA_OPTS: ${JAVA_OPTS:---sun-misc-unsafe-memory-access=allow -XX:+UseZGC -XX:MaxRAMPercentage=75} NACOS_CONFIG_ENABLED: ${NACOS_CONFIG_ENABLED:-true} NACOS_SERVER_ADDR: ${NACOS_SERVER_ADDR:-127.0.0.1:8848} NACOS_NAMESPACE: ${NACOS_NAMESPACE:-} diff --git a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java index 049a6b06..4d897448 100644 --- a/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java +++ b/modules/apps/vehicle-history-app/src/test/java/com/lingniu/ingest/historyapp/PortainerComposeResourceLimitsTest.java @@ -36,6 +36,17 @@ class PortainerComposeResourceLimitsTest { assertServiceMemoryLimit(compose, "vehicle-analytics-app", "VEHICLE_ANALYTICS_MEM_LIMIT", "1024m"); } + @Test + void containerDefaultsIncludeJava25UnsafeCompatibilityFlag() throws IOException { + String compose = Files.readString(repositoryRoot().resolve("deploy/portainer/docker-compose.yml")); + String dockerfile = Files.readString(repositoryRoot().resolve("Dockerfile")); + + assertThat(dockerfile) + .contains("ENV JAVA_OPTS=\"--sun-misc-unsafe-memory-access=allow\""); + assertThat(commonEnvBlock(compose)) + .contains("JAVA_OPTS: ${JAVA_OPTS:---sun-misc-unsafe-memory-access=allow -XX:+UseZGC -XX:MaxRAMPercentage=75}"); + } + @Test void gb32960ComposeExposesBothPlatformAccountsWithoutSecrets() throws IOException { String compose = Files.readString(repositoryRoot().resolve("deploy/portainer/docker-compose.yml"));