From 2d104a579be424fcbd83eafd68306beb79ad023f Mon Sep 17 00:00:00 2001 From: Jared Goodwin Date: Wed, 5 May 2021 22:40:19 -0700 Subject: [PATCH] Automatically use Docker volume for persisting SQLite DB and appsettings.json. --- Server/DockerMain.sh | 23 +++++++++++++++++++++++ Server/Dockerfile | 16 +++++++++++----- 2 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 Server/DockerMain.sh diff --git a/Server/DockerMain.sh b/Server/DockerMain.sh new file mode 100644 index 00000000..ea81e05d --- /dev/null +++ b/Server/DockerMain.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +echo "Entered main script." + +ServerDir=/var/www/remotely +RemotelyData=/remotely-data + +AppSettingsVolume=/remotely-data/appsettings.json +AppSettingsWww=/var/www/remotely/appsettings.json + +if [ ! -f "$AppSettingsVolume" ]; then + echo "Copying appsettings.json to volume." + cp "$AppSettingsWww" "$AppSettingsVolume" +fi + +if [ -f "$AppSettingsWww" ]; then + rm "$AppSettingsWww" +fi + +ln -s "$AppSettingsVolume" "$AppSettingsWww" + +echo "Starting Remotely server." +exec /usr/bin/dotnet /var/www/remotely/Remotely_Server.dll \ No newline at end of file diff --git a/Server/Dockerfile b/Server/Dockerfile index ac5ddd96..657c708f 100644 --- a/Server/Dockerfile +++ b/Server/Dockerfile @@ -5,7 +5,6 @@ EXPOSE 5000 ENV ASPNETCORE_ENVIRONMENT="Production" ENV ASPNETCORE_URLS="http://*:5000" - RUN \ apt-get -y update && \ apt-get -y install \ @@ -27,9 +26,16 @@ RUN \ mkdir /config && \ wget -q https://github.com/lucent-sea/Remotely/releases/latest/download/Remotely_Server_Linux-x64.zip && \ unzip -o Remotely_Server_Linux-x64.zip -d /var/www/remotely && \ - rm Remotely_Server_Linux-x64.zip && \ - setfacl -R -m u:www-data:rwx /var/www/remotely && \ - chown -R www-data:www-data /var/www/remotely + rm Remotely_Server_Linux-x64.zip + +RUN \ + mkdir -p /remotely-data && \ + sed -i 's/DataSource=Remotely.db/DataSource=\/remotely-data\/Remotely.db/' /var/www/remotely/appsettings.json + +VOLUME "/remotely-data" WORKDIR /var/www/remotely -ENTRYPOINT ["/usr/bin/dotnet", "/var/www/remotely/Remotely_Server.dll"] \ No newline at end of file + +COPY DockerMain.sh / + +ENTRYPOINT ["/DockerMain.sh"] \ No newline at end of file