diff --git a/seahub/Dockerfile b/seahub/Dockerfile index 2eb2681..c972efb 100644 --- a/seahub/Dockerfile +++ b/seahub/Dockerfile @@ -66,7 +66,8 @@ openjpeg \ tiff \ tk \ mariadb-dev \ -libmemcached +libmemcached \ +netcat-openbsd COPY --from=get /tmp/seafile-server*/seahub /opt/seafile/seafile-server-latest/seahub COPY --from=get /tmp/seafile-server*/runtime /opt/seafile/seafile-server-latest/runtime diff --git a/seahub/scripts/start.sh b/seahub/scripts/start.sh index e191a4d..dc4d8d6 100644 --- a/seahub/scripts/start.sh +++ b/seahub/scripts/start.sh @@ -1,16 +1,35 @@ #!/bin/bash -function start_seahub { +function init_seahub { /scripts/create_data_links.sh - echo "{ \"email\": \"${SEAFILE_ADMIN_EMAIL}\",\"password\": \"${SEAFILE_ADMIN_PASSWORD}\"}" | tee /opt/seafile/conf/admin.txt - #/opt/seafile/seafile-server-latest/seahub.sh start + echo "{ \"email\": \"${SEAFILE_ADMIN_EMAIL}\",\"password\": \"${SEAFILE_ADMIN_PASSWORD}\"}" >/opt/seafile/conf/admin.txt python3 /opt/seafile/seafile-server-latest/check_init_admin.py +} + +function start_seahub { + echo "Starting seahub..." python3 /opt/seafile/seafile-server-latest/seahub/manage.py runserver 0.0.0.0:8000 } function start_socat { mkdir -p /opt/seafile/seafile-server-latest/runtime - socat -d -d UNIX-LISTEN:/opt/seafile/seafile-server-latest/runtime/seafile.sock,fork TCP:seafile-server:8001,forever,keepalive,keepidle=10,keepintvl=10,keepcnt=2 + while true; do + socat -d -d UNIX-LISTEN:/opt/seafile/seafile-server-latest/runtime/seafile.sock,fork TCP:seafile-server:8001,forever,keepalive,keepidle=10,keepintvl=10,keepcnt=2 + done +} + +function watch_server { + while true; do + if ! nc -z seafile-server 8001 2>/dev/null; then + echo "Seafile server is unreachable. Stopping seahub..." + pkill -f manage.py + while ! nc -z seafile-server 8001 2>/dev/null; do + sleep 1 + done + start_seahub & + fi + sleep 1 + done } function keep_running { @@ -20,5 +39,7 @@ function keep_running { } start_socat & +init_seahub start_seahub & +watch_server & keep_running \ No newline at end of file