#!/usr/bin/env bash # The buildpacks image under common container memory limits. The Paketo memory calculator runs # before the JVM and refuses to launch if its fixed regions do not fit. # -> docs/output/buildpacks-memory.txt set -uo pipefail source "$(dirname "$0")/env.sh" run() { # label, docker args... local label="$1"; shift local name="bpm-$$"; docker rm -f "$name" > /dev/null 2>&1 docker run -d --name "$name" "$@" sbd/docker-images:buildpacks > /dev/null for _ in $(seq 1 100); do docker logs "$name" 2>&1 | grep -qE 'Started ImagesApplication|failed to launch' && break; sleep 0.1 done echo "## $label" docker logs "$name" 2>&1 | grep -E 'Calculated JVM Memory|unable to calculate|fixed memory regions|failed to launch|Started ImagesApplication' \ | sed -E 's/^[0-9T:.-]+Z +INFO 1 --- \[docker-images\] \[ +main\] com.ankurm.images.ImagesApplication +: //; s/\x1b\[[0-9;]*m//g' | cut -c1-230 echo "state: $(docker inspect -f '{{.State.Status}} (exit {{.State.ExitCode}})' "$name")" echo docker rm -f "$name" > /dev/null } { run "docker run -m 512m" -m 512m run "docker run -m 768m" -m 768m run "docker run -m 512m -e BPL_JVM_THREAD_COUNT=50" -m 512m -e BPL_JVM_THREAD_COUNT=50 } | tee "$OUT/buildpacks-memory.txt"