การกำหนด Size Docker - up1/soa_group2 GitHub Wiki
การกำหนด Size Docker
ปัญหาการ Down ของ Container ที่สร้างมาจาก image ของ Spring boot ที่พบเจอเกิดจากปัญหา memory ไม่พอที่จะทำงานพร้อมกันหลายๆ Container ได้
ซึ่งเราสามารถดูได้ว่า container นั้นมี process อะไรทำงานอยู่บ้าง โดยใช้คำสั่ง
docker exec {container's name} top -m
จะได้ผลลัพธ์ดังรูป
ซึ่งเราสามารถกำหนด Heap Size ของ java ได้โดยการกำหนด JAVA_OPTS ตอนรัน container แต่ต้องแก้ไขไฟล์ Dockerfile
โดยการเพิ่มคำสั่ง exec
เพื่อให้สามารถรับค่า JAVA_OPTS ได้โดยไม่ถูกมองว่าเป็น Spring-boot variable
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD {service name}.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "exec java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
จากนั้นทำการรัน container
docker run -d -e "JAVA_OPTS=-Xmx{heap size}" {spring-boot image}
ผลลัพธ์