diff --git a/60-database.sh b/60-database.sh index 076c153a..aed510fe 100755 --- a/60-database.sh +++ b/60-database.sh @@ -16,8 +16,19 @@ else DBHOST=db $omero config set omero.db.host "$DBHOST" fi + +CONFIG_omero_db_name=${CONFIG_omero_db_name:-} +if [ -n "$CONFIG_omero_db_name" ]; then + DBNAME="$CONFIG_omero_db_name" + DBNAME_src=env +else + # Delay setting in config until *after* + # the upgrade is attempted. + DBNAME=omero + DBNAME_src=default +fi + DBUSER="${CONFIG_omero_db_user:-omero}" -DBNAME="${CONFIG_omero_db_name:-omero}" DBPASS="${CONFIG_omero_db_pass:-omero}" ROOTPASS="${ROOTPASS:-omero}" @@ -39,7 +50,18 @@ psql -w -h "$DBHOST" -U "$DBUSER" "$DBNAME" -c \ "select * from dbpatch" 2> /dev/null && { echo "Upgrading database" $omego db upgrade --serverdir=OMERO.server -} || { - echo "Initialising database" - $omego db init --rootpass "$ROOTPASS" --serverdir=OMERO.server -} + } || { + + if [ "$DBNAME_src" = default ]; then + $omero config set omero.db.name "$DBNAME" + fi + + if [ -f "/opt/omero/sql/db.sql" ]; then + echo "Restoring database" + $omego db init --omerosql "/opt/omero/sql/db.sql" --serverdir=OMERO.server + else + echo "Initialising database" + $omego db init --rootpass "$ROOTPASS" --serverdir=OMERO.server + fi + + } diff --git a/Dockerfile b/Dockerfile index 6231eaac..da88a43d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,9 @@ RUN curl -L -o /usr/local/bin/dumb-init \ ADD entrypoint.sh /usr/local/bin/ ADD 50-config.py 60-database.sh 99-run.sh /startup/ +RUN mkdir -p /opt/omero/sql && \ + chown omero-server:omero-server /opt/omero/sql + USER omero-server EXPOSE 4063 4064