From 52ee6eaa1d0ebc41dfb3d54d8449d3194c77ca80 Mon Sep 17 00:00:00 2001 From: Mindus Date: Mon, 30 Jan 2023 13:11:41 +0100 Subject: [PATCH] [Docker] Fix - changed seperate vol. for characters, chats, ... to single config vol. - settings.json is now persistent Fixes #1 --- Dockerfile | 12 +++++++++++- docker/docker-compose.yml | 4 +--- docker/docker-entrypoint.sh | 24 ++++++++++++------------ 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/Dockerfile b/Dockerfile index 898bd0d0c..f5509dda1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,17 @@ RUN \ echo "*** Copy default chats, characters and user avatars to .default folder ***" && \ mv "./public/characters" "./public/characters.default" && \ mv "./public/chats" "./public/chats.default" && \ - mv "./public/User Avatars" "./public/User Avatars.default" + mv "./public/User Avatars" "./public/User Avatars.default" && \ + mv "./public/settings.json" "./public/settings.json.default" && \ + echo "*** Create empty folders ***" && \ + mkdir "./public/characters" && \ + mkdir "./public/chats" && \ + mkdir "./public/User Avatars" && \ + echo "*** Create symbolic links to config directory ***" && \ + ln -s "./config/characters" "./public/characters" && \ + ln -s "./config/chats" "./public/chats" && \ + ln -s "./config/User Avatars" "./public/User Avatars" && \ + ln -s "./config/settings.json" "./public/settings.json" # Cleanup unnecessary files RUN \ diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 65eedbeec..59b67738d 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -8,7 +8,5 @@ services: ports: - "8000:8000" volumes: - - "./config/characters:/home/node/app/public/characters" - - "./config/chats:/home/node/app/public/chats" - - "./config/User Avatars:/home/node/app/public/User Avatars" + - "./config:/home/node/app/config" restart: unless-stopped \ No newline at end of file diff --git a/docker/docker-entrypoint.sh b/docker/docker-entrypoint.sh index 4c67dcf88..1e7cf1245 100644 --- a/docker/docker-entrypoint.sh +++ b/docker/docker-entrypoint.sh @@ -1,27 +1,27 @@ #!/bin/sh # Check if the "characters" directory is empty -if [ -z "$(ls -A /home/node/app/public/characters)" ]; then +if [ -z "$(ls -A /home/node/app/config/characters)" ]; then echo "Characters directory is empty. Copying default characters." - mkdir /home/node/app/public/characters - mv /home/node/app/public/characters.default/* /home/node/app/public/characters/ - rm -rf /home/node/app/public/characters.default + mv /home/node/app/public/characters.default /home/node/app/config/characters fi # Check if the "chats" directory is empty -if [ -z "$(ls -A /home/node/app/public/chats)" ]; then +if [ -z "$(ls -A /home/node/app/config/chats)" ]; then echo "Chats directory is empty. Copying default chats." - mkdir /home/node/app/public/chats - mv /home/node/app/public/chats.default/* /home/node/app/public/chats/ - rm -rf /home/node/app/public/chats.default + mv /home/node/app/public/chats.default /home/node/app/config/chats/ fi # Check if the "User Avatars" directory is empty -if [ -z "$(ls -A '/home/node/app/public/User Avatars')" ]; then +if [ -z "$(ls -A '/home/node/app/config/User Avatars')" ]; then echo "User Avatars directory is empty. Copying default user avatars." - mkdir /home/node/app/public/User\ Avatars - mv /home/node/app/public/User\ Avatars.default/* /home/node/app/public/User\ Avatars/ - rm -rf /home/node/app/public/User\ Avatars.default + mv /home/node/app/public/User\ Avatars.default /home/node/app/config/User\ Avatars/ +fi + +# Check if the "settings.json" file is not empty +if [ ! -s "/home/node/app/config/settings.json" ]; then + echo "Settings file does not exist. Copying default settings." + mv /home/node/app/public/settings.json.default /home/node/app/config/settings.json fi # Start the server