diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a2c1bab..e60c88c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -35,7 +35,9 @@ jobs: context: . push: true platforms: linux/arm64 - tags: ghcr.io/bcsdlab/bcsd-internal-api:latest + tags: | + ghcr.io/bcsdlab/bcsd-internal-api:latest + ghcr.io/bcsdlab/bcsd-internal-api:${{ github.sha }} - name: Deploy to server uses: appleboy/ssh-action@v1.0.3 diff --git a/Dockerfile b/Dockerfile index d65cf96..53f34a5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,4 +7,7 @@ FROM eclipse-temurin:21-jre-alpine WORKDIR /app COPY --from=builder /app/build/libs/*.jar app.jar EXPOSE 8081 -ENTRYPOINT ["java", "-Xmx256m", "-jar", "app.jar"] +# 컨테이너 한도(256m) 안에서 힙+비힙 전체를 예측 가능하게 묶는다. +# -Xmx256m은 힙 혼자 한도를 다 먹을 수 있어 메타스페이스/코드캐시/스택이 넘칠 때 +# OOMKill을 유발했다. nproc=2 + 한도 256m이므로 GC는 JVM이 SerialGC를 자동 선택한다. +ENTRYPOINT ["java", "-XX:MaxRAMPercentage=45.0", "-XX:MaxMetaspaceSize=112m", "-XX:ReservedCodeCacheSize=64m", "-XX:MaxDirectMemorySize=32m", "-XX:+ExitOnOutOfMemoryError", "-jar", "app.jar"]