diff --git a/.gitignore b/.gitignore index f16235a..1af21a7 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,4 @@ venv.bak/ *.war .flaskenv.secret +bom.json diff --git a/requirements.txt b/requirements.txt index 6dd5ad7..129dfa5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ Flask==3.1.1 python-dotenv Flask_Cors==6.0.0 -requests==2.32.4 +requests==2.33.0 PyYAML setuptools diff --git a/src/d2_docker/config/dhis2-core-entrypoint.sh b/src/d2_docker/config/dhis2-core-entrypoint.sh index 6756169..58ed092 100755 --- a/src/d2_docker/config/dhis2-core-entrypoint.sh +++ b/src/d2_docker/config/dhis2-core-entrypoint.sh @@ -14,7 +14,7 @@ DHIS2HOME=/DHIS2_home DATA_DIR=/data GLOWROOT_ZIP="/opt/glowroot.zip" GLOWROOT_DIR="/opt/glowroot" - +APPROOT=$TOMCATDIR/webapps/ROOT debug() { echo "[dhis2-core-entrypoint] $*" >&2 @@ -95,8 +95,8 @@ setup_glowroot() { if [ "$(id -u)" = "0" ]; then if [ -f $WARFILE ]; then - unzip -q $WARFILE -d $TOMCATDIR/webapps/ROOT - rm -v $WARFILE # just to save space + unzip -q $WARFILE -d $APPROOT + rm -v $WARFILE # just to save space fi setup_glowroot diff --git a/src/d2_docker/config/dhis2-core-start.sh b/src/d2_docker/config/dhis2-core-start.sh index 508fcde..0b6fc68 100755 --- a/src/d2_docker/config/dhis2-core-start.sh +++ b/src/d2_docker/config/dhis2-core-start.sh @@ -15,6 +15,9 @@ set -e -u -o pipefail export PGPASSWORD="dhis" +# Default to 10 seconds +[[ "$STOP_GRACE_PERIOD" =~ ^[0-9]+$ ]] || STOP_GRACE_PERIOD=10 + dhis2_url="http://localhost:8080/$DEPLOY_PATH" dhis2_url_with_auth="http://$DHIS2_AUTH@localhost:8080/$DEPLOY_PATH" psql_base_cmd="psql --quiet -h db -U dhis dhis2" @@ -29,16 +32,34 @@ post_db_path="/data/db/post" source_apps_path="/data/apps" source_documents_path="/data/document" source_datavalues_path="/data/dataValue" -files_path="/DHIS2_home/files/" -tomcat_conf_dir="/usr/local/tomcat/conf" +home_path="/DHIS2_home" +files_path="$home_path/files/" +tomcatdir=/usr/local/tomcat +tomcat_conf_dir="$tomcatdir/conf" +approot="$tomcatdir/webapps/ROOT" +flag_sql_error="$home_path/flag-sql-error" + debug() { echo "[dhis2-core-start] $*" >&2 } +setup_error_page() { + debug "Setting up error page (application removed)" + rm -rf "$approot" + mkdir -p -m 750 "$approot" + chown tomcat:tomcat "$approot" + echo 'Error + Error during preparation of the service' > "$approot/index.html" +} + run_sql_files() { base_db_path=$(test "${LOAD_FROM_DATA}" = "yes" && echo "$root_db_path" || echo "$post_db_path") debug "Files in data path" + if [[ ! -d "$base_db_path" ]] ; then + debug " -- NO FILES -- " + return 0 + fi find "$base_db_path" >&2 find "$base_db_path" -type f \( -name '*.dump' \) | @@ -53,16 +74,24 @@ run_sql_files() { zcat "$path" | $psql_cmd || true done - find "$base_db_path" -type f \( -name '*.sql' \) | - sort | while read -r path; do + local sql_error=0 + while read -r path; do echo "Load SQL: $path" exit_code=0 run_psql_cmd "$path" || exit_code=$? if [ "$exit_code" -gt 0 ]; then echo "Exit code: $exit_code" - exit "$exit_code" + sql_error=1 + break fi - done + done < <(find "$base_db_path" -type f \( -name '*.sql' \) | sort) + + if [ "$sql_error" -gt 0 ]; then + touch "$flag_sql_error" + setup_error_page + return 1 + fi + return 0 } run_psql_cmd() { @@ -122,9 +151,9 @@ copy_non_empty_files() { setup_tomcat() { debug "Setup tomcat" - cp -v $configdir/DHIS2_home/* "/DHIS2_home/" - cp -v $homedir/* /DHIS2_home/ || true - copy_non_empty_files "$configdir/override/dhis2/" "/DHIS2_home/" + cp -v $configdir/DHIS2_home/* "$home_path/" + cp -v $homedir/* $home_path/ || true + copy_non_empty_files "$configdir/override/dhis2/" "$home_path/" cp -v "$configdir/server.xml" "$tomcat_conf_dir/server.xml" copy_non_empty_files "$configdir/override/tomcat/" "$tomcat_conf_dir/" @@ -142,6 +171,22 @@ start_tomcat() { catalina.sh run } +manage_tomcat_lifecycle() { + local msg="${1:-}" + local callback="${2:-}" + + start_tomcat & + LAST_PID=$! + + if [ -n "$callback" ]; then + $callback + fi + + [ -n "$msg" ] && debug "$msg" + + wait $LAST_PID || true +} + wait_for_tomcat() { debug "Waiting for Tomcat to start: $dhis2_url" while ! curl -sS -i "$dhis2_url" 2>/dev/null | grep "^Location"; do @@ -149,6 +194,26 @@ wait_for_tomcat() { done } +cleanup() { + debug "--- [SIGNAL RECEIVED] ---" + debug "Stopping tomcat" + catalina.sh stop & + STOP_PID=$! + count=0 + while [ $count -lt $STOP_GRACE_PERIOD ]; do + if ! kill -0 $STOP_PID 2>/dev/null; then + debug "Tomcat has stopped." + exit 0 + fi + sleep 1 + count=$((count + 1)) + done + exit 0 +} + +trap cleanup SIGTERM SIGINT + + INIT_DONE_FILE="/tmp/dhis2-core-start.done" is_init_done() { @@ -163,6 +228,16 @@ run() { local host=$1 psql_port=$2 setup_tomcat + + # If a previous SQL error was flagged (persisted in named volume), keep showing error page + if [ -f "$flag_sql_error" ]; then + debug "SQL error flag detected from a previous run. Container will start with error page only." + setup_error_page + manage_tomcat_lifecycle \ + "Container is running with error page. Fix the SQL issue and remove the flag ($flag_sql_error) to recover." + return + fi + if is_init_done; then debug "Container: already configured. Skip DB load and keeping other changes" else @@ -172,16 +247,24 @@ run() { copy_datavalues debug "Container: clean. Load DB" wait_for_postgres - run_sql_files + if ! run_sql_files; then + debug "SQL error detected. Container will start with error page only." + manage_tomcat_lifecycle \ + "Fix the SQL issue and remove the flag ($flag_sql_error) to recover." + return + fi run_pre_scripts || true init_done fi - start_tomcat & - wait_for_tomcat - run_post_scripts || true - debug "DHIS2 instance ready" - wait + post_start_actions() { + wait_for_tomcat + run_post_scripts || true + } + + manage_tomcat_lifecycle \ + "DHIS2 instance ready" \ + post_start_actions } env diff --git a/src/d2_docker/docker-compose.yml b/src/d2_docker/docker-compose.yml index f0f8d22..d523024 100644 --- a/src/d2_docker/docker-compose.yml +++ b/src/d2_docker/docker-compose.yml @@ -19,9 +19,11 @@ services: LOAD_FROM_DATA: "${LOAD_FROM_DATA}" DEPLOY_PATH: "${DEPLOY_PATH}" DHIS2_AUTH: "${DHIS2_AUTH}" + STOP_GRACE_PERIOD: 10 # This MUST be equal to the stop_grace_period, but without units + stop_grace_period: 10s + restart: unless-stopped entrypoint: bash /config/dhis2-core-entrypoint.sh command: bash /config/dhis2-core-start.sh - restart: "no" depends_on: - "db" - "data" diff --git a/src/d2_docker/images/dhis2-core/docker-entrypoint.sh b/src/d2_docker/images/dhis2-core/docker-entrypoint.sh index 27844fb..51e622a 100644 --- a/src/d2_docker/images/dhis2-core/docker-entrypoint.sh +++ b/src/d2_docker/images/dhis2-core/docker-entrypoint.sh @@ -8,10 +8,11 @@ WARFILE=/usr/local/tomcat/webapps/ROOT.war TOMCATDIR=/usr/local/tomcat DHIS2HOME=/DHIS2_home DATA_DIR=/data +APPROOT=$TOMCATDIR/webapps/ROOT if [ "$(id -u)" = "0" ]; then if [ -f $WARFILE ]; then - unzip -q $WARFILE -d $TOMCATDIR/webapps/ROOT + unzip -q $WARFILE -d $APPROOT rm -v $WARFILE # just to save space fi diff --git a/src/d2_docker/images/dhis2-core/java-11/Dockerfile b/src/d2_docker/images/dhis2-core/java-11/Dockerfile index 35cc2f0..974e4ae 100644 --- a/src/d2_docker/images/dhis2-core/java-11/Dockerfile +++ b/src/d2_docker/images/dhis2-core/java-11/Dockerfile @@ -1,7 +1,6 @@ FROM tomcat:9.0.64-jre11-openjdk-slim-bullseye ENV DHIS2_HOME=/DHIS2_home -ENV DHIS2_CERT=/DHIS2_home/who_pub_cert.cert ENV DATA_DIR=/data COPY docker-entrypoint.sh /usr/local/bin/ @@ -14,11 +13,6 @@ RUN rm -rf /usr/local/tomcat/webapps/* && \ addgroup root tomcat && \ useradd --shell /bin/bash --uid 101 --gid tomcat tomcat -COPY who_pub_cert.cert $DHIS2_CERT -RUN chmod +rx $DHIS2_CERT -RUN keytool -importcert -alias who_mail_ichigoout -file $DHIS2_CERT -keystore /usr/local/openjdk-11/lib/security/cacerts -storepass changeit -noprompt - - RUN apt-get update RUN echo 'You can disregard the warning in noninteractive installations:' \ '"debconf: delaying package configuration, since apt-utils is not installed"' diff --git a/src/d2_docker/images/dhis2-core/java-11/who_pub_cert.cert b/src/d2_docker/images/dhis2-core/java-11/who_pub_cert.cert deleted file mode 120000 index 7178e72..0000000 --- a/src/d2_docker/images/dhis2-core/java-11/who_pub_cert.cert +++ /dev/null @@ -1 +0,0 @@ -../who_pub_cert.cert \ No newline at end of file diff --git a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/Dockerfile b/src/d2_docker/images/dhis2-core/java-17-tomcat-10/Dockerfile index 82f1edf..1629098 100644 --- a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/Dockerfile +++ b/src/d2_docker/images/dhis2-core/java-17-tomcat-10/Dockerfile @@ -1,7 +1,6 @@ FROM tomcat:10.1.36-jre21-temurin ENV DHIS2_HOME=/DHIS2_home -ENV DHIS2_CERT=/DHIS2_home/who_pub_cert.cert ENV DATA_DIR=/data COPY docker-entrypoint.sh /usr/local/bin/ @@ -14,10 +13,6 @@ RUN rm -rf /usr/local/tomcat/webapps/* && \ usermod -aG tomcat root && \ useradd --shell /bin/bash --uid 101 --gid tomcat tomcat -COPY who_pub_cert.cert $DHIS2_CERT -RUN chmod +rx $DHIS2_CERT -RUN keytool -importcert -alias who_mail_ichigoout -file $DHIS2_CERT -keystore /opt/java/openjdk/lib/security/cacerts -storepass changeit -noprompt - RUN apt-get update RUN echo 'You can disregard the warning in noninteractive installations:' \ diff --git a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/docker-entrypoint.sh b/src/d2_docker/images/dhis2-core/java-17-tomcat-10/docker-entrypoint.sh deleted file mode 100644 index 27844fb..0000000 --- a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/docker-entrypoint.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -# -# This file should be basically the same as config/dhis2-core-entrypoint.sh -# -set -e # exit on errors - -WARFILE=/usr/local/tomcat/webapps/ROOT.war -TOMCATDIR=/usr/local/tomcat -DHIS2HOME=/DHIS2_home -DATA_DIR=/data - -if [ "$(id -u)" = "0" ]; then - if [ -f $WARFILE ]; then - unzip -q $WARFILE -d $TOMCATDIR/webapps/ROOT - rm -v $WARFILE # just to save space - fi - - mkdir -p $DATA_DIR/apps - chown -R tomcat:tomcat $TOMCATDIR $DATA_DIR/apps $DHIS2HOME - chmod -R u=rwX,g=rX,o-rwx $TOMCATDIR $DATA_DIR/apps $DHIS2HOME - - # Launch the given command as tomcat, in two ways for backwards compatibility: - if [ "$(grep '^ID=' /etc/os-release)" = "ID=alpine" ]; then - # The alpine linux way (for old images). - exec su-exec tomcat "$0" "$@" - else - # The ubuntu way (for new images). - exec setpriv --reuid=tomcat --regid=tomcat --init-groups "$0" "$@" - fi -fi - -exec "$@" diff --git a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/docker-entrypoint.sh b/src/d2_docker/images/dhis2-core/java-17-tomcat-10/docker-entrypoint.sh new file mode 120000 index 0000000..92ff18c --- /dev/null +++ b/src/d2_docker/images/dhis2-core/java-17-tomcat-10/docker-entrypoint.sh @@ -0,0 +1 @@ +../docker-entrypoint.sh \ No newline at end of file diff --git a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/who_pub_cert.cert b/src/d2_docker/images/dhis2-core/java-17-tomcat-10/who_pub_cert.cert deleted file mode 100644 index 9a179fa..0000000 --- a/src/d2_docker/images/dhis2-core/java-17-tomcat-10/who_pub_cert.cert +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGJDCCBQygAwIBAgIQJUJnlAcKVsfQ9MMGpFjCBTANBgkqhkiG9w0BAQsFADCB -jzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQD -Ey5TZWN0aWdvIFJTQSBEb21haW4gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENB -MB4XDTIyMDMxNjAwMDAwMFoXDTIzMDQxNjIzNTk1OVowFDESMBAGA1UEAwwJKi53 -aG8uaW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxSHGIzs9hI1G -hoQpRqA6AJJHtV5UNU7HYGqewe/g/hO78YKa3GkCr2nXVz42fDrwtKI6qyTL8R4t -JlqxK7NgorwQK7swZlQq77pj0jGo2NaxqI68oaoz8Itkg361jlk2LJQrrSJBGemc -2vZC7o1hWZLwcf8PwSBkKTqjZjO7th0ESEUt8ic6YZxEWaWdJeZUc+xDGpM439L+ -mPeZKmwLzKUk41DPe1LBjeVCKOlTnFaGTX8/PescoifgAV+kZ9G+hmu5aZYVx2n+ -w8nVc4aIOiQow1LOtk8CDvBPoDnJMOpKEZobXcqcTDvbFnG4mzUnc6GXDWLaF/kJ -JMvRKoTsQwIDAQABo4IC9DCCAvAwHwYDVR0jBBgwFoAUjYxexFStiuF36Zv5mwXh -uAGNYeEwHQYDVR0OBBYEFHTQH+RF7rX7AXEqzVXnkXexoDIEMA4GA1UdDwEB/wQE -AwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD -AjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgIHMCUwIwYIKwYBBQUHAgEWF2h0dHBz -Oi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATCBhAYIKwYBBQUHAQEEeDB2ME8G -CCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29SU0FEb21h -aW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3J0MCMGCCsGAQUFBzABhhdodHRw -Oi8vb2NzcC5zZWN0aWdvLmNvbTAdBgNVHREEFjAUggkqLndoby5pbnSCB3doby5p -bnQwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB3AK33vvp8/xDIi509nB4+GGq0 -Zyldz7EMJMqFhjTr3IKKAAABf5MeKkoAAAQDAEgwRgIhAINPWOeOK9LR1KvwjXy3 -tq+VOtOl2pbxUSGpKb/on/5fAiEAl/zai8TthJdRZGYAQ1AJVY83+VPNlrAmYt4Y -aATC6GoAdgB6MoxU2LcttiDqOOBSHumEFnAyE4VNO9IrwTpXo1LrUgAAAX+THioV -AAAEAwBHMEUCIQC5LVSJjK/+axH2ygQBQvZBteFsrpfrjTwlxRUZIOVOegIgfe+9 -UxpopGPMoxAinRvmhV80DC2SjyB5tJ5gxdEwjy0AdQDoPtDaPvUGNTLnVyi8iWvJ -A9PL0RFr7Otp4Xd9bQa9bgAAAX+THiniAAAEAwBGMEQCIGzDAwbnDDooUiBzsIgx -qQTH9LWRw/sUP6oPqC/TCy5IAiBv5zoBNQRFF5xL747h+fonfzO29cOTOxII7OOE -tB5PtDANBgkqhkiG9w0BAQsFAAOCAQEAZoC2S+nrxP2loGfjDvbjo0N9cc7KhCJv -XPAG3qvc1T4RI4ZCfTKY5vpFYqu6E/TMdGlDTXD3NxheJyScm51x5tXGfvIsnKDc -//zWyUXvZPnJWLEjP4JKsRb/Gi8hIPfLP0PST1xjk+JlxE+vfbHfH5BUegfpfBgv -Fu+HiJEFS3ZDE6Im61Hq5BdMdLF84u5khs0smbWOyP4tP9fqD6gnq0RV+gcI2JzU -LLc0mPIpLqQ87zvj/Re0rMGS/JhXp4cAyvIuwi1AuechGjQR1zeBNgVIkxd+ccnc -OaI6t3HH7OQ2K8pCNLa4PyoAJL/XnIwq0FwvqSVKW8h3vTdZ4Z0+Jg== ------END CERTIFICATE----- diff --git a/src/d2_docker/images/dhis2-core/java-17/Dockerfile b/src/d2_docker/images/dhis2-core/java-17/Dockerfile index 1b385ef..7344e0c 100644 --- a/src/d2_docker/images/dhis2-core/java-17/Dockerfile +++ b/src/d2_docker/images/dhis2-core/java-17/Dockerfile @@ -1,7 +1,6 @@ FROM tomcat:9.0.85-jre17-temurin-jammy ENV DHIS2_HOME=/DHIS2_home -ENV DHIS2_CERT=/DHIS2_home/who_pub_cert.cert ENV DATA_DIR=/data COPY docker-entrypoint.sh /usr/local/bin/ @@ -14,10 +13,6 @@ RUN rm -rf /usr/local/tomcat/webapps/* && \ addgroup root tomcat && \ useradd --shell /bin/bash --uid 101 --gid tomcat tomcat -COPY who_pub_cert.cert $DHIS2_CERT -RUN chmod +rx $DHIS2_CERT -RUN keytool -importcert -alias who_mail_ichigoout -file $DHIS2_CERT -keystore /opt/java/openjdk/lib/security/cacerts -storepass changeit -noprompt - RUN apt-get update RUN echo 'You can disregard the warning in noninteractive installations:' \ diff --git a/src/d2_docker/images/dhis2-core/java-17/who_pub_cert.cert b/src/d2_docker/images/dhis2-core/java-17/who_pub_cert.cert deleted file mode 120000 index 7178e72..0000000 --- a/src/d2_docker/images/dhis2-core/java-17/who_pub_cert.cert +++ /dev/null @@ -1 +0,0 @@ -../who_pub_cert.cert \ No newline at end of file diff --git a/src/d2_docker/images/dhis2-core/who_pub_cert.cert b/src/d2_docker/images/dhis2-core/who_pub_cert.cert deleted file mode 100644 index c576482..0000000 --- a/src/d2_docker/images/dhis2-core/who_pub_cert.cert +++ /dev/null @@ -1,35 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIGJDCCBQygAwIBAgIQJUJnlAcKVsfQ9MMGpFjCBTANBgkqhkiG9w0BAQsFADCB -jzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQD -Ey5TZWN0aWdvIFJTQSBEb21haW4gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENB -MB4XDTIyMDMxNjAwMDAwMFoXDTIzMDQxNjIzNTk1OVowFDESMBAGA1UEAwwJKi53 -aG8uaW50MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxSHGIzs9hI1G -hoQpRqA6AJJHtV5UNU7HYGqewe/g/hO78YKa3GkCr2nXVz42fDrwtKI6qyTL8R4t -JlqxK7NgorwQK7swZlQq77pj0jGo2NaxqI68oaoz8Itkg361jlk2LJQrrSJBGemc -2vZC7o1hWZLwcf8PwSBkKTqjZjO7th0ESEUt8ic6YZxEWaWdJeZUc+xDGpM439L+ -mPeZKmwLzKUk41DPe1LBjeVCKOlTnFaGTX8/PescoifgAV+kZ9G+hmu5aZYVx2n+ -w8nVc4aIOiQow1LOtk8CDvBPoDnJMOpKEZobXcqcTDvbFnG4mzUnc6GXDWLaF/kJ -JMvRKoTsQwIDAQABo4IC9DCCAvAwHwYDVR0jBBgwFoAUjYxexFStiuF36Zv5mwXh -uAGNYeEwHQYDVR0OBBYEFHTQH+RF7rX7AXEqzVXnkXexoDIEMA4GA1UdDwEB/wQE -AwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcD -AjBJBgNVHSAEQjBAMDQGCysGAQQBsjEBAgIHMCUwIwYIKwYBBQUHAgEWF2h0dHBz -Oi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAECATCBhAYIKwYBBQUHAQEEeDB2ME8G -CCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29SU0FEb21h -aW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3J0MCMGCCsGAQUFBzABhhdodHRw -Oi8vb2NzcC5zZWN0aWdvLmNvbTAdBgNVHREEFjAUggkqLndoby5pbnSCB3doby5p -bnQwggF+BgorBgEEAdZ5AgQCBIIBbgSCAWoBaAB3AK33vvp8/xDIi509nB4+GGq0 -Zyldz7EMJMqFhjTr3IKKAAABf5MeKkoAAAQDAEgwRgIhAINPWOeOK9LR1KvwjXy3 -tq+VOtOl2pbxUSGpKb/on/5fAiEAl/zai8TthJdRZGYAQ1AJVY83+VPNlrAmYt4Y -aATC6GoAdgB6MoxU2LcttiDqOOBSHumEFnAyE4VNO9IrwTpXo1LrUgAAAX+THioV -AAAEAwBHMEUCIQC5LVSJjK/+axH2ygQBQvZBteFsrpfrjTwlxRUZIOVOegIgfe+9 -UxpopGPMoxAinRvmhV80DC2SjyB5tJ5gxdEwjy0AdQDoPtDaPvUGNTLnVyi8iWvJ -A9PL0RFr7Otp4Xd9bQa9bgAAAX+THiniAAAEAwBGMEQCIGzDAwbnDDooUiBzsIgx -qQTH9LWRw/sUP6oPqC/TCy5IAiBv5zoBNQRFF5xL747h+fonfzO29cOTOxII7OOE -tB5PtDANBgkqhkiG9w0BAQsFAAOCAQEAZoC2S+nrxP2loGfjDvbjo0N9cc7KhCJv -XPAG3qvc1T4RI4ZCfTKY5vpFYqu6E/TMdGlDTXD3NxheJyScm51x5tXGfvIsnKDc -//zWyUXvZPnJWLEjP4JKsRb/Gi8hIPfLP0PST1xjk+JlxE+vfbHfH5BUegfpfBgv -Fu+HiJEFS3ZDE6Im61Hq5BdMdLF84u5khs0smbWOyP4tP9fqD6gnq0RV+gcI2JzU -LLc0mPIpLqQ87zvj/Re0rMGS/JhXp4cAyvIuwi1AuechGjQR1zeBNgVIkxd+ccnc -OaI6t3HH7OQ2K8pCNLa4PyoAJL/XnIwq0FwvqSVKW8h3vTdZ4Z0+Jg== ------END CERTIFICATE----- \ No newline at end of file diff --git a/src/d2_docker/images/dhis2-data/run.sh b/src/d2_docker/images/dhis2-data/run.sh index 183a5c8..a283392 100755 --- a/src/d2_docker/images/dhis2-data/run.sh +++ b/src/d2_docker/images/dhis2-data/run.sh @@ -10,6 +10,8 @@ main() { local volume=$1 chmod -R u+rwX,go+rX,go-w $volume else rm -rf /$volume/* + # To avoid leaving dhis2-core without a path to /data/db/post after clearing up all /data + mkdir /$volume/db fi }