diff --git a/mauro-api/docker/all/micronaut/micronaut-config.sh b/mauro-api/docker/all/micronaut/micronaut-config.sh new file mode 100644 index 000000000..d3977f765 --- /dev/null +++ b/mauro-api/docker/all/micronaut/micronaut-config.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +set -e + +if [ -e /opt/init/micronaut ]; +then + mkdir -p /home/app/plugins + pushd /opt/init/micronaut + + shopt -s nullglob + for f in * + do + case "${f}" in + *.sh) + echo "Running ${f}" + if [ -x "${f}" ]; + then + /bin/bash "${f}" + else + . "${f}" + fi + ;; + *.jar) + echo "Adding ${f} as plugin" + cp -pf ${f} /home/app/plugins/. + ;; + *) + echo "Copying ${f} to micronaut resources" + cp "${f}" /home/app/resources/. + ;; + esac + done + shopt -u nullglob + popd +else + echo "No /opt/init/micronaut for *.sh *.yml *.xml *.properties etc - skipping" +fi diff --git a/mauro-api/docker/all/micronaut/micronaut-startup.sh b/mauro-api/docker/all/micronaut/micronaut-startup.sh index 562b42cd4..9fa440ada 100644 --- a/mauro-api/docker/all/micronaut/micronaut-startup.sh +++ b/mauro-api/docker/all/micronaut/micronaut-startup.sh @@ -1,42 +1,10 @@ #!/usr/bin/env bash set -e -if [ -e /opt/init/micronaut ]; -then - mkdir -p /home/app/plugins - pushd /opt/init/micronaut - - shopt -s nullglob - for f in * - do - case "${f}" in - *.sh) - echo "Running ${f}" - if [ -x "${f}" ]; - then - /bin/bash "${f}" - else - . "${f}" - fi - ;; - *.jar) - echo "Adding ${f} as plugin" - cp -pf ${f} /home/app/plugins/. - ;; - *) - echo "Copying ${f} to micronaut resources" - cp "${f}" /home/app/resources/. - ;; - esac - done - shopt -u nullglob - popd -else - echo "No /opt/init/micronaut for *.sh *.yml *.xml *.properties etc - skipping" -fi - # Figure out the java options +if [ "${PG_SHARING_HOST}" == "true" ]; +then declare -A java_opts=( [4]="-server -Xms614M -Xmx2457M -XX:MaxNewSize=1126M -XX:NewSize=204M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=784M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=240M" [8]="-server -Xms1843M -Xmx7372M -XX:MaxNewSize=3379M -XX:NewSize=614M -XX:MetaspaceSize=768M -XX:MaxMetaspaceSize=2764M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=307M" @@ -49,6 +17,20 @@ declare -A java_opts=( [96]="-server -Xms28876M -Xmx115507M -XX:MaxNewSize=52940M -XX:NewSize=9625M -XX:MetaspaceSize=12032M -XX:MaxMetaspaceSize=43315M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=4812M" [128]="server -Xms38707M -Xmx154828M -XX:MaxNewSize=70963M -XX:NewSize=12902M -XX:MetaspaceSize=16128M -XX:MaxMetaspaceSize=58060M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=6451M" ) +else + declare -A java_opts=( + [2]="-server -Xms614M -Xmx2457M -XX:MaxNewSize=1126M -XX:NewSize=204M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=784M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=240M" + [4]="-server -Xms1843M -Xmx7372M -XX:MaxNewSize=3379M -XX:NewSize=614M -XX:MetaspaceSize=768M -XX:MaxMetaspaceSize=2764M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=307M" + [6]="-server -Xms3G -Xmx12G -XX:MaxNewSize=5632M -XX:NewSize=1G -XX:MetaspaceSize=1280M -XX:MaxMetaspaceSize=4608M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=512M" + [8]="-server -Xms4300M -Xmx17203M -XX:MaxNewSize=7884M -XX:NewSize=1433M -XX:MetaspaceSize=1792M -XX:MaxMetaspaceSize=6451M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=716M" + [12]="-server -Xms6758M -Xmx27033M -XX:MaxNewSize=12390M -XX:NewSize=2252M -XX:MetaspaceSize=2816M -XX:MaxMetaspaceSize=10137M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=1126M" + [16]="-server -Xms9G -Xmx36G -XX:MaxNewSize=16896M -XX:NewSize=3G -XX:MetaspaceSize=3840M -XX:MaxMetaspaceSize=13824M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=1536M" + [24]="-server -Xms14131M -Xmx56524M -XX:MaxNewSize=25907M -XX:NewSize=4710M -XX:MetaspaceSize=5888M -XX:MaxMetaspaceSize=21196M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=2355M" + [32]="-server -Xms19046M -Xmx76185M -XX:MaxNewSize=34918M -XX:NewSize=6348M -XX:MetaspaceSize=7936M -XX:MaxMetaspaceSize=28569M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=3174M" + [48]="-server -Xms28876M -Xmx115507M -XX:MaxNewSize=52940M -XX:NewSize=9625M -XX:MetaspaceSize=12032M -XX:MaxMetaspaceSize=43315M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=4812M" + [64]="server -Xms38707M -Xmx154828M -XX:MaxNewSize=70963M -XX:NewSize=12902M -XX:MetaspaceSize=16128M -XX:MaxMetaspaceSize=58060M -XX:NewRatio=2 -XX:SurvivorRatio=2 -XX:TargetSurvivorRatio=80 -XX:+UseParallelGC -XX:+AggressiveHeap -XX:GCTimeRatio=19 -XX:MaxGCPauseMillis=3500 -XX:InitialCodeCacheSize=48M -XX:ReservedCodeCacheSize=6451M" + ) +fi chosen_opts="" best_key=0 diff --git a/mauro-api/docker/all/postgres/micronaut-config-for-postgres.sh b/mauro-api/docker/all/postgres/micronaut-config-for-postgres.sh index cdbae4111..59cd5f5e9 100644 --- a/mauro-api/docker/all/postgres/micronaut-config-for-postgres.sh +++ b/mauro-api/docker/all/postgres/micronaut-config-for-postgres.sh @@ -45,7 +45,8 @@ function yaml_val { } }' } - +export PG_RUNNING_INTERNALLY="true" +export PG_SHARING_HOST="true" if [ -e /home/app/resources ]; then if [[ -v DATABASE_NAME ]]; @@ -59,6 +60,7 @@ if [ -e /home/app/resources ]; if [ -e "/home/app/resources/application-datasources.yml" ]; then + echo "Reading application-datasources.yml" datasources_default_url=$(yaml_val "/home/app/resources/application-datasources.yml" 'datasources_default_url') datasources_default_username=$(yaml_val "/home/app/resources/application-datasources.yml" 'datasources_default_username') datasources_default_password=$(yaml_val "/home/app/resources/application-datasources.yml" 'datasources_default_password') @@ -74,6 +76,7 @@ if [ -e /home/app/resources ]; if [ "${datasources_default_url}" == "" ]; then datasources_default_url="jdbc:postgresql://localhost:5432/sandbox" + echo "Setting default jdbc url: ${datasources_default_url}" fi if [ "${datasources_default_username}" == "" ]; @@ -93,6 +96,42 @@ if [ -e /home/app/resources ]; db="${db%%\?*}" export DATABASE_NAME="${db}" + + URL_NO_PREFIX="${datasources_default_url#jdbc:postgresql://}" + HOSTPORT="${URL_NO_PREFIX%%/*}" + export POSTGRES_HOST="${HOSTPORT%%:*}" + + export POSTGRES_PORT="${HOSTPORT##*:}" + + if [ "$POSTGRES_PORT" = "$HOSTPORT" ]; then + export POSTGRES_PORT=5432 + fi + + export PG_RUNNING_INTERNALLY="false" + + for addr in ${DOCKER_LOCAL_ADDRESSES} + do + case "$POSTGRES_HOST" in + $addr) + export PG_RUNNING_INTERNALLY="true" + break + ;; + esac + done + + export PG_SHARING_HOST="false" + for addr in ${DOCKER_BRIDGE_ADDRESSES} + do + case "$POSTGRES_HOST" in + $addr) + export PG_SHARING_HOST="true" + break + ;; + esac + done + + echo "PG_SHARING_HOST: ${PG_SHARING_HOST}" + fi else echo "Missing resource files" diff --git a/mauro-api/docker/all/postgres/postgres-shutdown.sh b/mauro-api/docker/all/postgres/postgres-shutdown.sh index 2375d42af..a16d9a661 100644 --- a/mauro-api/docker/all/postgres/postgres-shutdown.sh +++ b/mauro-api/docker/all/postgres/postgres-shutdown.sh @@ -1,10 +1,13 @@ #!/usr/bin/env bash set -e -if [ -s "${DATABASE_DIRECTORY}/PG_VERSION" ]; -then - PG_BIN="$(find /usr/lib/postgresql -name 'bin')" - export PATH="${PG_BIN}:${PATH}" - echo "Shutting down Postgres..." - pg_ctl -D "${DATABASE_DIRECTORY}" stop -m fast -w +if [ "${PG_RUNNING_INTERNALLY}" != "false" ]; + then + if [ -s "${DATABASE_DIRECTORY}/PG_VERSION" ]; + then + PG_BIN="$(find /usr/lib/postgresql -name 'bin')" + export PATH="${PG_BIN}:${PATH}" + echo "Shutting down internal Postgres..." + pg_ctl -D "${DATABASE_DIRECTORY}" stop -m fast -w + fi fi diff --git a/mauro-api/docker/all/postgres/postgres-startup.sh b/mauro-api/docker/all/postgres/postgres-startup.sh index 53a166e31..8980030fd 100644 --- a/mauro-api/docker/all/postgres/postgres-startup.sh +++ b/mauro-api/docker/all/postgres/postgres-startup.sh @@ -1,121 +1,165 @@ #!/usr/bin/env bash set -e -# Start Postgres in background -echo "Starting Postgres... from ${DATABASE_DIRECTORY}" -PG_BIN="$(find /usr/lib/postgresql -name 'bin')" -export PATH="${PG_BIN}:${PATH}" +echo "Postgres connection is to:" +echo " host: $POSTGRES_HOST" +echo " port: $POSTGRES_PORT" +echo " database: $DATABASE_NAME" +echo " user: $DATABASE_USERNAME" -if [ ! -s "${DATABASE_DIRECTORY}/PG_VERSION" ]; +if [ "${PG_RUNNING_INTERNALLY}" != "false" ]; then - echo "Initializing Postgres database..." - initdb -D "${DATABASE_DIRECTORY}" + # Start Postgres in background + echo "Starting internal Postgres... from ${DATABASE_DIRECTORY}" + PG_BIN="$(find /usr/lib/postgresql -name 'bin')" + export PATH="${PG_BIN}:${PATH}" - # Start up and create the default database + if [ ! -s "${DATABASE_DIRECTORY}/PG_VERSION" ]; + then + echo "Initializing Postgres database..." + initdb -D "${DATABASE_DIRECTORY}" + + # Start up and create the default database - pg_ctl -D "${DATABASE_DIRECTORY}" -l "${DATABASE_LOGS_DIRECTORY}/logfile" -o "-c listen_addresses='*'" -w start + pg_ctl -D "${DATABASE_DIRECTORY}" -l "${DATABASE_LOGS_DIRECTORY}/logfile" -o "-c listen_addresses='*'" -w start - # create user and database - psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL - CREATE USER $DATABASE_USERNAME with SUPERUSER PASSWORD '$DATABASE_PASSWORD'; - CREATE DATABASE ${DATABASE_NAME} OWNER $DATABASE_USERNAME; + # create user and database + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL + CREATE USER $DATABASE_USERNAME with SUPERUSER PASSWORD '$DATABASE_PASSWORD'; + CREATE DATABASE ${DATABASE_NAME} OWNER $DATABASE_USERNAME; EOSQL - if [ -e /opt/init/postgres ]; - then - pushd /opt/init/postgres - - shopt -s nullglob - for f in * - do - case "${f}" in - *.sh) - echo "Running ${f}" - if [ -x "${f}" ]; - then - /bin/bash "${f}" - else - . "${f}" - fi - ;; - *.sql) - echo "Running ${f}" - psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f "${f}" - ;; - esac - done - shopt -u nullglob - popd - else - echo "No /opt/init/postgres *.sh *.sql - skipping" - fi + if [ -e /opt/init/postgres ]; + then + pushd /opt/init/postgres + + shopt -s nullglob + for f in * + do + case "${f}" in + *.sh) + echo "Running ${f}" + if [ -x "${f}" ]; + then + /bin/bash "${f}" + else + . "${f}" + fi + ;; + *.sql) + echo "Running ${f}" + psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" -f "${f}" + ;; + esac + done + shopt -u nullglob + popd + else + echo "No /opt/init/postgres *.sh *.sql - skipping" + fi - pg_ctl -D ${DATABASE_DIRECTORY} -w stop -fi + pg_ctl -D ${DATABASE_DIRECTORY} -w stop + fi -# Write some defaults + # Write some defaults - usable_gb=$(( MEMORY_AVAILABLE_GB - 2 )) - if (( usable_gb < 1 )); then - usable_gb=1 - fi + usable_gb=$(( MEMORY_AVAILABLE_GB - 2 )) + if (( usable_gb < 1 )); then + usable_gb=1 + fi - pg_gb=$(( usable_gb / 2 )) - if (( pg_gb < 1 )); then - pg_gb=1 - fi + pg_gb=$(( usable_gb / 2 )) + if (( pg_gb < 1 )); then + pg_gb=1 + fi - pg_mb=$(( pg_gb * 1024 )) + pg_mb=$(( pg_gb * 1024 )) - max_worker_processes=$(( CPU_COUNT )) - parallel_workers=$(( max_worker_processes / 2 )) + max_worker_processes=$(( CPU_COUNT )) + parallel_workers=$(( max_worker_processes / 2 )) - work_mem=$(( pg_mb / 160 )) - maintenance_work_mem=$(( work_mem * max_worker_processes * 2 )) + work_mem=$(( pg_mb / 160 )) + maintenance_work_mem=$(( work_mem * max_worker_processes * 2 )) - shared_buffers=$(( pg_mb / 4 )) - effective_cache_size=$(( MEMORY_AVAILABLE_GB * 1024 / 2 )) + shared_buffers=$(( pg_mb / 4 )) + effective_cache_size=$(( MEMORY_AVAILABLE_GB * 1024 / 2 )) - remaining_mem=$(( pg_mb - shared_buffers )) - work_mem_three=$(( 3 * work_mem )) - max_connections=$(( 4 + ( remaining_mem / work_mem_three) - max_worker_processes )) + remaining_mem=$(( pg_mb - shared_buffers )) + work_mem_three=$(( 3 * work_mem )) + max_connections=$(( 4 + ( remaining_mem / work_mem_three) - max_worker_processes )) - cat < "${DATABASE_DIRECTORY}/postgresql.auto.conf" -# Auto-tuned settings -seq_page_cost = 1.0 -random_page_cost = 1.1 -huge_pages = try -wal_buffers = 16MB -min_wal_size = 4GB -max_wal_size = 16GB + cat < "${DATABASE_DIRECTORY}/postgresql.auto.conf" + # Auto-tuned settings + seq_page_cost = 1.0 + random_page_cost = 1.1 + huge_pages = try + wal_buffers = 16MB + min_wal_size = 4GB + max_wal_size = 16GB -shared_buffers = ${shared_buffers}MB -effective_cache_size = ${effective_cache_size}MB -maintenance_work_mem = ${maintenance_work_mem}MB -work_mem = ${work_mem}MB + shared_buffers = ${shared_buffers}MB + effective_cache_size = ${effective_cache_size}MB + maintenance_work_mem = ${maintenance_work_mem}MB + work_mem = ${work_mem}MB -max_worker_processes = ${max_worker_processes} -max_parallel_workers = ${max_worker_processes} -max_parallel_workers_per_gather = ${parallel_workers} -max_parallel_maintenance_workers = ${parallel_workers} + max_worker_processes = ${max_worker_processes} + max_parallel_workers = ${max_worker_processes} + max_parallel_workers_per_gather = ${parallel_workers} + max_parallel_maintenance_workers = ${parallel_workers} -max_connections = ${max_connections} + max_connections = ${max_connections} EOF -chown postgres:postgres "${DATABASE_DIRECTORY}/postgresql.auto.conf" + chown postgres:postgres "${DATABASE_DIRECTORY}/postgresql.auto.conf" -# Check that the docker container has access + # Check that the docker container has access -if [ -e "${DATABASE_DIRECTORY}/pg_hba.conf" ]; -then - ALLOWED=$(grep "${DOCKER_SUBNET}" "${DATABASE_DIRECTORY}/pg_hba.conf" || true) + if [ -e "${DATABASE_DIRECTORY}/pg_hba.conf" ]; + then + ALLOWED=$(grep "${DOCKER_SUBNET}" "${DATABASE_DIRECTORY}/pg_hba.conf" || true) + + if [ "${ALLOWED}" == "" ]; + then + echo "Adding Docker ${DOCKER_SUBNET} as a trusted network for postgres" + echo "host ${DATABASE_NAME} ${DATABASE_USERNAME} ${DOCKER_SUBNET} trust" >> "${DATABASE_DIRECTORY}/pg_hba.conf" + fi + fi + + pg_ctl -D "${DATABASE_DIRECTORY}" -l "${DATABASE_LOGS_DIRECTORY}/logfile" -o "-c listen_addresses='*'" -w start - if [ "${ALLOWED}" == "" ]; +else + + echo "Postgres is configured externally. Testing connection..." + + if ! pg_isready -h "$POSTGRES_HOST" -p "$POSTGRES_PORT" > /dev/null 2>&1 ; then - echo "Adding Docker ${DOCKER_SUBNET} as a trusted network for postgres" - echo "host ${DATABASE_NAME} ${DATABASE_USERNAME} ${DOCKER_SUBNET} trust" >> "${DATABASE_DIRECTORY}/pg_hba.conf" + echo "ERROR: Postgres is not reachable" + echo " host: $POSTGRES_HOST" + echo " port: $POSTGRES_PORT" + exit 1 fi -fi -pg_ctl -D "${DATABASE_DIRECTORY}" -l "${DATABASE_LOGS_DIRECTORY}/logfile" -o "-c listen_addresses='*'" -w start + export PGPASSWORD="$DATABASE_PASSWORD" + if ! psql \ + -h "$POSTGRES_HOST" \ + -p "$POSTGRES_PORT" \ + -U "$DATABASE_USERNAME" \ + -d "$DATABASE_NAME" \ + -c "SELECT 1;" \ + > /dev/null 2>&1 + then + unset PGPASSWORD + echo "ERROR: Cannot connect to Postgres database" + echo " host: $POSTGRES_HOST" + echo " port: $POSTGRES_PORT" + echo " database: $DATABASE_NAME" + echo " user: $DATABASE_USERNAME" + exit 1 + fi + + unset PGPASSWORD + + echo "Database connection successful" + +fi diff --git a/mauro-api/docker/all/startup/docker-environment.sh b/mauro-api/docker/all/startup/docker-environment.sh index 90cde41ab..a61db688e 100644 --- a/mauro-api/docker/all/startup/docker-environment.sh +++ b/mauro-api/docker/all/startup/docker-environment.sh @@ -27,3 +27,11 @@ echo "Detected ${CPU_COUNT} cores" export DOCKER_SUBNET="$(ip -o -4 addr show 2>/dev/null | awk '/scope global/ {split($4,a,"/");split(a[1],b,".");printf "%d.%d.%d.0/%s\n",b[1],b[2],b[3],a[2];exit}')" echo "Docker subnet ${DOCKER_SUBNET}" + +export DOCKER_LOCAL_ADDRESSES="localhost ::1 $(ip -o -4 addr show | awk ' {split($4,a,"/"); printf "%s ",a[1]} ')" +export DOCKER_CONTAINER_NETWORK_PREFIX="$(ip -o -4 addr show 2>/dev/null | awk '/scope global/ {split($4,a,"/");split(a[1],b,".");printf "%d.%d.%d.*",b[1],b[2],b[3];exit}')" + +export DOCKER_BRIDGE_ADDRESSES="host.docker.internal ${DOCKER_CONTAINER_NETWORK_PREFIX}" + +echo "Docker internal addresses ${DOCKER_LOCAL_ADDRESSES}" +echo "Docker bridge addresses ${DOCKER_BRIDGE_ADDRESSES}" diff --git a/mauro-api/docker/all/startup/docker-startup.sh b/mauro-api/docker/all/startup/docker-startup.sh index 92378be42..df3c7e7d6 100644 --- a/mauro-api/docker/all/startup/docker-startup.sh +++ b/mauro-api/docker/all/startup/docker-startup.sh @@ -35,6 +35,7 @@ cleanup() } source "$(which docker-environment.sh)" +source "$(which micronaut-config.sh)" source "$(which micronaut-config-for-postgres.sh)" gosu postgres postgres-startup.sh trap cleanup SIGTERM SIGINT