diff --git a/core/entrypoint.sh b/core/entrypoint.sh
index 86dad559f19f29c4c106b25d677ecf7ee5b6368c..1b8bb999be53171e8b0c23bf13594d65ed4bd691 100644
--- a/core/entrypoint.sh
+++ b/core/entrypoint.sh
@@ -15,6 +15,7 @@ fi
 # (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
 #  "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
 file_env() {
+
 	local var="$1"
 	local fileVar="${var}_FILE"
 	local def="${2:-}"
@@ -27,17 +28,14 @@ file_env() {
 	elif [ "${!fileVar:-}" ]; then
 		val="$(< "${!fileVar}")"
 	fi
-	export "$var"="$val"
-    echo " the ${var} shall be set to ${val}"
+	cat >> /etc/bash.bashrc <<EOF
+export ${var}=${val}
+EOF
+
 	unset "$fileVar"
 }
-# Loads various settings that are used elsewhere in the script
-# This should be called after mysql_check_config, but before any other functions
-docker_setup_env() {
 
-	# Initialize values that might be stored in a file
-	file_env 'OS_PASSWORD'
+file_env "OS_PASSWORD"
+
 
-}
-docker_setup_env "$@"
 eval "/opt/eoxserver/eoxserver-entrypoint.sh $@"
diff --git a/docker-compose.vhr18.yml b/docker-compose.vhr18.yml
index 8b808a9d9a4b2b08ea574f9fafb21e41e565c097..243427eaa62ca5c068e52c8f6308285396278a44 100644
--- a/docker-compose.vhr18.yml
+++ b/docker-compose.vhr18.yml
@@ -129,6 +129,8 @@ services:
       - env/vhr18_db.env
       - env/vhr18_obs.env
       - env/vhr18_redis.env
+    secrets:
+      - OS_PASSWORD
     environment:
       INSTANCE_ID: "prism-view-server_registrar"
       INSTALL_DIR: "/var/www/pvs/dev/"
@@ -138,6 +140,7 @@ services:
       INIT_SCRIPTS: "/configure.sh /init-db.sh /initialized.sh"
       STARTUP_SCRIPTS: "/wait-initialized.sh"
       WAIT_SERVICES: "redis:6379 database:5432"
+      OS_PASSWORD_FILE: "/run/secrets/OS_PASSWORD"
     configs:
       - source: init-db
         target: /init-db.sh
@@ -169,3 +172,6 @@ volumes:
   instance-data:
 networks:
   intnet:
+secrets:
+  OS_PASSWORD:
+    external: true