--Langue: Kotlin --Cadre: ktor --docker image: openjdk: 8-jre-alpine
Dockerfile
FROM openjdk:8-jre-alpine
ENV APPLICATION_USER ktor
RUN adduser -D -g '' $APPLICATION_USER
RUN mkdir /app
RUN chown -R $APPLICATION_USER /app
USER $APPLICATION_USER
COPY ./build/libs/my-application.jar /app/my-application.jar
WORKDIR /app
CMD ["java", "-server", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-XX:InitialRAMFraction=2", "-XX:MinRAMFraction=2", "-XX:MaxRAMFraction=2", "-XX:+UseG1GC", "-XX:MaxGCPauseMillis=100", "-XX:+UseStringDeduplication", "-XX:MaxMetaspaceSize=256M", "-XshowSettings:vm", "-jar", "my-application.jar"]
En gros [documentation ktor](https://jp.ktor.work/quickstart/quickstart/docker.html#docker%E3%82%A4%E3%83%A1%E3%83%BC%E3% Basé sur 82% B8% E3% 81% AE% E6% BA% 96% E5% 82% 99), mais ajout de l'option Java.
---XX: MaxMetaspaceSize = 256M
: C'est un paramètre qui sécurise la valeur maximale de la méta-espace de 256 Mo et ne l'augmente plus. Par défaut, il peut être étendu indéfiniment, je fixe donc la valeur maximale au cas où.
---XshowSettings: vm
: affiche les paramètres de la VM au démarrage.
Veillez à spécifier la limite matérielle de la mémoire dans la définition du conteneur.
La valeur spécifiée ici est transmise à l'option --memory
de docker run
.
Normalement, spécifiez la même valeur que la mémoire des tâches.
Affichez le journal des tâches Fargate et assurez-vous que la taille maximale du tas correspond à ce que vous attendiez. Dans ce cas, la limite stricte est de 1000 Mo et l'option java est "-XX: MaxRAMFraction = 2", donc 500 Mo est correct.
Recommended Posts