diff --git a/.env b/.env index 0e627e3b7..02afcf12e 100644 --- a/.env +++ b/.env @@ -1,8 +1,8 @@ SORMAS_POSTGRES_PASSWORD=password SORMAS_POSTGRES_USER=sormas_user -SORMAS_DOCKER_VERSION=2.13.1 -SORMAS_VERSION=1.51.1 +SORMAS_DOCKER_VERSION=2.14.0 +SORMAS_VERSION=1.52.1 SORMAS_SERVER_URL=sormas-docker-test.com SORMAS_URL=https://github.com/hzi-braunschweig/SORMAS-Project/releases/download/ diff --git a/apache2/Dockerfile b/apache2/Dockerfile index a0ac34e02..a5a74b81a 100644 --- a/apache2/Dockerfile +++ b/apache2/Dockerfile @@ -1,7 +1,7 @@ FROM httpd:2.4-alpine ARG SORMAS_SERVER_URL -ARG SORMAS_VERSION=1.51.1 +ARG SORMAS_VERSION=1.52.1 ENV SORMAS_VERSION=$SORMAS_VERSION ARG SORMAS_URL=https://github.com/hzi-braunschweig/SORMAS-Project/releases/download/ diff --git a/docker-compose-sb.yml b/docker-compose-sb.yml new file mode 100644 index 000000000..d550ee1b5 --- /dev/null +++ b/docker-compose-sb.yml @@ -0,0 +1,142 @@ +version: '2.3' + +networks: + sormas: + name: sormas + +services: + sormas: + restart: unless-stopped + labels: + - autoheal=true + # override for stop timeout seconds during restart + - autoheal.stop.timeout=30 + links: + - postgres + image: hzibraunschweig/sormas-application:${SORMAS_DOCKER_VERSION} + environment: + - SORMAS_POSTGRES_USER=${SORMAS_POSTGRES_USER} + - SORMAS_POSTGRES_PASSWORD=${SORMAS_POSTGRES_PASSWORD} + - SORMAS_SERVER_URL=${SORMAS_SERVER_URL} + - DB_HOST=${DB_HOST} + - DOMAIN_NAME=${DOMAIN_NAME} + - DB_JDBC_MAXPOOLSIZE=${DB_JDBC_MAXPOOLSIZE} + - DB_NAME=${DB_NAME} + - DB_NAME_AUDIT=${DB_NAME_AUDIT} + - MAIL_HOST=${MAIL_HOST} + - MAIL_FROM=${MAIL_FROM} + - SORMAS_VERSION=${SORMAS_VERSION} + - LOCALE=${LOCALE} + - EPIDPREFIX=${EPIDPREFIX} + - SEPARATOR=${SEPARATOR} + - EMAIL_SENDER_ADDRESS=${EMAIL_SENDER_ADDRESS} + - EMAIL_SENDER_NAME=${EMAIL_SENDER_NAME} + - LATITUDE=${LATITUDE} + - LONGITUDE=${LONGITUDE} + - MAP_ZOOM=${MAP_ZOOM} + - TZ=${TZ} + - JVM_MAX=${APPSERVER_JVM_MAX} + - GEO_UUID=${GEO_UUID} + - DEVMODE=${DEVMODE} + - JSON_LOGGING=${JSON_LOGGING} + - CUSTOMBRANDING_ENABLED=${CUSTOMBRANDING_ENABLED} + - CUSTOMBRANDING_NAME=${CUSTOMBRANDING_NAME} + - CUSTOMBRANDING_LOGO_PATH=${CUSTOMBRANDING_LOGO_PATH} + - CUSTOMBRANDING_USE_LOGINSIDEBAR=${CUSTOMBRANDING_USE_LOGINSIDEBAR} + - CUSTOMBRANDING_LOGINBACKGROUND_PATH=${CUSTOMBRANDING_LOGINBACKGROUND_PATH} + - GEO_TEMPLATE=${GEO_TEMPLATE} + - GEO_LONG_TEMPLATE=${GEO_LONG_TEMPLATE} + - GEO_LAT_TEMPLATE=${GEO_LAT_TEMPLATE} + - CASEARCHIVEDAYS=${CASEARCHIVEDAYS} + - EVENTARCHIVEDAYS=${EVENTARCHIVEDAYS} + - PIA_URL=${PIA_URL} + - SJ_URL=https://${PIA_URL}/user/connectSormas + - SJ_AUTH=https://${PIA_URL}/user/requestToken + - SJ_CLIENTID=${SJ_CLIENTID} + - SJ_SECRET=${SJ_SECRET} + volumes: + - ${SORMAS_PATH}/documents:/opt/sormas/documents + - ${SORMAS_PATH}/custom:/opt/sormas/custom + - ${SORMAS_PATH}/sormas2sormas:/opt/sormas/sormas2sormas + - ${SORMAS_PATH}/sormas-logs:/opt/domains/sormas/logs + mem_limit: ${APPSERVER_MEM} + mem_reservation: ${APPSERVER_MEM_RESERVED} + healthcheck: + test: ["CMD", "curl", "-f", "-I", "http://localhost:6080/sormas-ui/login"] + interval: 30s + timeout: 7s + retries: 3 + start_period: 300s + depends_on: + postgres: + condition: service_healthy + networks: + sormas: + + postgres: + restart: unless-stopped + labels: + - autoheal=true + command: -c 'config_file=/etc/postgresql/postgresql.conf' + image: hzibraunschweig/sormas-postgres:${SORMAS_DOCKER_VERSION} + environment: + - POSTGRES_PASSWORD=${SORMAS_POSTGRES_PASSWORD} + - DB_NAME=sormas + - DB_NAME_AUDIT=sormas_audit + - SORMAS_POSTGRES_PASSWORD=${SORMAS_POSTGRES_PASSWORD} + - SORMAS_POSTGRES_USER=${SORMAS_POSTGRES_USER} + - TZ=${TZ} + volumes: + - ${SORMAS_PATH}/psqldata:/var/lib/postgresql/data + ports: + - "5432:5432" + mem_limit: ${DB_MEM} + mem_reservation: ${DB_MEM_RESERVED} + healthcheck: + test: ["CMD", "psql", "-U", "${SORMAS_POSTGRES_USER}", "-c", "SELECT 1;", "${DB_NAME}"] + interval: 30s + timeout: 3s + retries: 3 + start_period: 30s + networks: + sormas: + + pg_dump: + restart: unless-stopped + image: hzibraunschweig/sormas-pg-dump:${SORMAS_DOCKER_VERSION} + environment: + - DB_HOST=${DB_HOST} + - DB_NAME=sormas + - DB_NAME_AUDIT=sormas_audit + - PGPASSWORD=${SORMAS_POSTGRES_PASSWORD} + - SORMAS_POSTGRES_USER=${SORMAS_POSTGRES_USER} + - TZ=${TZ} + volumes: + - /backup:/var/opt/db_dumps + cpus: ${DB_DUMP_CPUS} + mem_limit: ${DB_DUMP_MEM} + mem_reservation: ${DB_DUMP_MEM_RESERVED} + depends_on: + postgres: + condition: service_healthy + networks: + sormas: + + autoheal: + restart: unless-stopped + image: willfarrell/autoheal + environment: + # watch all running containers. + - AUTOHEAL_CONTAINER_LABEL=all + # check every 10 seconds + - AUTOHEAL_INTERVAL=10 + # wait 0 seconds before first health check + - AUTOHEAL_START_PERIOD=0 + # Docker waits max 10 seconds (the Docker default) for a container to stop before killing + - AUTOHEAL_DEFAULT_STOP_TIMEOUT=10 + # Unix socket for curl requests to Docker API + - DOCKER_SOCK=/var/run/docker.sock + # --max-time seconds for curl requests to Docker API + - CURL_TIMEOUT=30 + volumes: + - /var/run/docker.sock:/var/run/docker.sock diff --git a/letsencrypt/Dockerfile b/letsencrypt/Dockerfile index 4b1f0ccae..0fba53cd6 100755 --- a/letsencrypt/Dockerfile +++ b/letsencrypt/Dockerfile @@ -4,7 +4,7 @@ FROM lsiobase/nginx:3.11 ARG CERTBOT_VERSION=1.3.0 ARG SORMAS_URL=https://github.com/hzi-braunschweig/SORMAS-Project/releases/download/ -ARG SORMAS_VERSION=1.51.1 +ARG SORMAS_VERSION=1.52.1 ENV SORMAS_VERSION=$SORMAS_VERSION LABEL maintainer="aptalca" diff --git a/payara/Dockerfile b/payara/Dockerfile index 8d483cc55..bdca03f6e 100644 --- a/payara/Dockerfile +++ b/payara/Dockerfile @@ -3,7 +3,7 @@ ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-mark hold zulu-8 \ && apt-get upgrade -y \ - && apt-get -y install wget unzip postgresql curl --no-install-recommends\ + && apt-get -y install wget unzip postgresql vim curl --no-install-recommends\ && apt-get clean RUN wget --no-check-certificate -O /tmp/payara-5.192.zip "https://search.maven.org/remotecontent?filepath=fish/payara/distributions/payara/5.192/payara-5.192.zip" \ diff --git a/payara/Dockerfile-jdk11 b/payara/Dockerfile-jdk11 index b35513af5..debcd7f8b 100644 --- a/payara/Dockerfile-jdk11 +++ b/payara/Dockerfile-jdk11 @@ -2,7 +2,7 @@ FROM azul/zulu-openjdk:11 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update \ && apt-get upgrade -y \ - && apt-get -y install wget unzip postgresql curl --no-install-recommends\ + && apt-get -y install wget unzip postgresql vim curl --no-install-recommends\ && apt-get clean RUN wget --no-check-certificate -O /tmp/payara-5.2020.2.zip "https://search.maven.org/remotecontent?filepath=fish/payara/distributions/payara/5.2020.2/payara-5.2020.2.zip" \ diff --git a/postgres/psql.conf b/postgres/psql.conf index 3833df3e9..337c93357 100644 --- a/postgres/psql.conf +++ b/postgres/psql.conf @@ -417,7 +417,7 @@ effective_cache_size = 1536MB # fatal # panic (effectively off) -#log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements +log_min_duration_statement = 5000 # -1 is disabled, 0 logs all statements # and their durations, > 0 logs only # statements running at least this number # of milliseconds diff --git a/sormas/Dockerfile b/sormas/Dockerfile index aff228c1c..79b23b52d 100644 --- a/sormas/Dockerfile +++ b/sormas/Dockerfile @@ -13,7 +13,7 @@ ARG MAIL_FROM=sormas@localhost ARG JVM_MAX=4096m ARG SORMAS_URL=https://github.com/hzi-braunschweig/SORMAS-Project/releases/download/ EXPOSE 6080 -ARG SORMAS_VERSION=1.51.1 +ARG SORMAS_VERSION=1.52.1 ENV SORMAS_VERSION=$SORMAS_VERSION ENV MAIL_FROM=root@localhost diff --git a/sormas/setup-server.sh b/sormas/setup-server.sh index f770e679d..df6c1add0 100644 --- a/sormas/setup-server.sh +++ b/sormas/setup-server.sh @@ -126,6 +126,12 @@ cp ${DEPLOY_PATH}/deploy/apps/*.war ${DOMAIN_DIR}/deployments/ cp ${DEPLOY_PATH}/deploy/s2s-generate-cert.sh /opt/sormas/sormas2sormas cp ${DEPLOY_PATH}/deploy/s2s-import-to-truststore.sh /opt/sormas/sormas2sormas +#Der String "300" tritt ausschließlich an Stellen auf an denen die (txn-)Timeouts definiert werden. Diese werden auf "0" gesetzt um die Timeouts zu deaktivieren +echo "Configure payara timeouts ..." +sed -i 's/"300"/"0"/g' ${DOMAIN_DIR}/config/domain.xml +echo "Set logging fo documents to WARNING level" +sed -i '/^<\/configuration>/i <\/root>\n' ${DOMAIN_DIR}/config/logback.xml + ${PAYARA_HOME}/bin/asadmin stop-domain --domaindir ${DOMAINS_HOME} diff --git a/sormas/start-server.sh b/sormas/start-server.sh index c9d71e5a8..2552eb8fa 100644 --- a/sormas/start-server.sh +++ b/sormas/start-server.sh @@ -97,6 +97,13 @@ echo "Configuring domain and database connection..." ${ASADMIN} delete-jvm-options -Xmx4096m ${ASADMIN} create-jvm-options -Xmx${JVM_MAX} +# Proxy settings +if [ ! -z "$PROXY_HOST" ];then + echo "Updating Proxy Settings" +${ASADMIN} create-system-properties --target server-config org.jboss.resteasy.jaxrs.client.proxy.host=${PROXY_HOST} +${ASADMIN} create-system-properties --target server-config org.jboss.resteasy.jaxrs.client.proxy.port=${PROXY_PORT} +${ASADMIN} create-system-properties --target server-config org.jboss.resteasy.jaxrs.client.proxy.scheme=${PROXY_SCHEME} +fi # JDBC pool delete_jdbc_connection_pool "jdbc/${DOMAIN_NAME}DataPool" "${DOMAIN_NAME}DataPool" ${ASADMIN} create-jdbc-connection-pool --restype javax.sql.ConnectionPoolDataSource --datasourceclassname org.postgresql.ds.PGConnectionPoolDataSource --isconnectvalidatereq true --validationmethod custom-validation --validationclassname org.glassfish.api.jdbc.validation.PostgresConnectionValidation --maxpoolsize ${DB_JDBC_MAXPOOLSIZE} --property "portNumber=5432:databaseName=${DB_NAME}:serverName=${DB_HOST}:user=${SORMAS_POSTGRES_USER}:password=${SORMAS_POSTGRES_PASSWORD}" ${DOMAIN_NAME}DataPool @@ -170,22 +177,28 @@ echo -e "\ninterface.symptomjournal.url = ${SJ_URL}" >>${DOMAIN_DIR}/sormas.prop echo "interface.symptomjournal.authurl = ${SJ_AUTH}" >>${DOMAIN_DIR}/sormas.properties echo "interface.symptomjournal.clientid = ${SJ_CLIENTID}" >>${DOMAIN_DIR}/sormas.properties echo "interface.symptomjournal.secret = ${SJ_SECRET}" >>${DOMAIN_DIR}/sormas.properties +echo "interface.symptomjournal.defaultuser.username = ${SJ_DEFAULT_USERNAME}" >>${DOMAIN_DIR}/sormas.properties +echo "interface.symptomjournal.defaultuser.password = ${SJ_DEFAULT_PASSWORD}" >>${DOMAIN_DIR}/sormas.properties fi #------------------CLIMEDO CONFIG sed -i "/^interface\.patientdiary\.url/d" "${DOMAIN_DIR}/sormas.properties" -sed -i "/^interface\.patientdiary\.externaldataurl/d" "${DOMAIN_DIR}/sormas.properties" +sed -i "/^interface\.patientdiary\.probandsurl/d" "${DOMAIN_DIR}/sormas.properties" sed -i "/^interface\.patientdiary\.authurl/d" "${DOMAIN_DIR}/sormas.properties" sed -i "/^interface\.patientdiary\.email/d" "${DOMAIN_DIR}/sormas.properties" sed -i "/^interface\.patientdiary\.password/d" "${DOMAIN_DIR}/sormas.properties" +sed -i "/^interface\.patientdiary\.defaultuser\.username/d" "${DOMAIN_DIR}/sormas.properties" +sed -i "/^interface\.patientdiary\.defaultuser\.password/d" "${DOMAIN_DIR}/sormas.properties" if [ ! -z "$PATIENTDIARY_ENABLED" ];then echo -e "\ninterface.patientdiary.url=${PD_URL}" >>${DOMAIN_DIR}/sormas.properties -echo -e "\ninterface.patientdiary.externaldataurl=${PD_EXTERNAL_DATA_URL}" >>${DOMAIN_DIR}/sormas.properties +echo -e "\ninterface.patientdiary.probandsurl=${PD_PROBANDS_URL}" >>${DOMAIN_DIR}/sormas.properties echo -e "\ninterface.patientdiary.authurl=${PD_AUTH_URL}" >>${DOMAIN_DIR}/sormas.properties echo -e "\ninterface.patientdiary.email=${PD_EMAIL}" >>${DOMAIN_DIR}/sormas.properties echo -e "\ninterface.patientdiary.password=${PD_PASSWORD}" >>${DOMAIN_DIR}/sormas.properties +echo -e "\ninterface.patientdiary.defaultuser.username=${PD_DEFAULT_USERNAME}" >>${DOMAIN_DIR}/sormas.properties +echo -e "\ninterface.patientdiary.defaultuser.password=${PD_DEFAULT_PASSWORD}" >>${DOMAIN_DIR}/sormas.properties fi