Move cron/supervisord/bash alternatives into their own directories

This commit is contained in:
flow.gunso
2019-05-02 15:39:02 +02:00
parent 8662725918
commit 7b09e0fe66
13 changed files with 56 additions and 9 deletions

View File

@@ -25,7 +25,7 @@ ENV GID=1000
# Copy over the Docker related files. # Copy over the Docker related files.
COPY utils/build/import-seafile-apt-key.sh / COPY utils/build/import-seafile-apt-key.sh /
COPY assets/docker-bash-entrypoint.sh /entrypoint.sh COPY assets/bash/docker-entrypoint.sh /entrypoint.sh
# Safely import Seafile APT key, then install both seafile-cli and supervisord. # Safely import Seafile APT key, then install both seafile-cli and supervisord.
RUN mkdir -p /etc/apt/sources.list.d/ ;\ RUN mkdir -p /etc/apt/sources.list.d/ ;\
@@ -50,7 +50,7 @@ RUN mkdir -p /etc/apt/sources.list.d/ ;\
useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME
# Copy over the required files for Seafile/SupervisorD. # Copy over the required files for Seafile/SupervisorD.
COPY assets/seafile-healthcheck.sh /home/seafuser/ COPY assets/bash/seafile-healthcheck.sh /home/seafuser/
COPY assets/seafile-bash-entrypoint.sh /home/seafuser/entrypoint.sh COPY assets/bash/seafile-entrypoint.sh /home/seafuser/entrypoint.sh
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

View File

@@ -25,7 +25,7 @@ ENV GID=1000
# Copy over the Docker related files. # Copy over the Docker related files.
COPY utils/build/import-seafile-apt-key.sh / COPY utils/build/import-seafile-apt-key.sh /
COPY assets/docker-cron-entrypoint.sh /entrypoint.sh COPY assets/cron/docker-entrypoint.sh /entrypoint.sh
# Safely import Seafile APT key, then install both seafile-cli and supervisord. # Safely import Seafile APT key, then install both seafile-cli and supervisord.
RUN mkdir -p /etc/apt/sources.list.d/ ;\ RUN mkdir -p /etc/apt/sources.list.d/ ;\
@@ -55,7 +55,7 @@ RUN mkdir -p /etc/apt/sources.list.d/ ;\
useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME
# Copy over the required files for Seafile/SupervisorD. # Copy over the required files for Seafile/SupervisorD.
COPY assets/seafile-cron-healthcheck.sh /home/seafuser/seafile-healthcheck.sh COPY assets/cron/seafile-healthcheck.sh /home/seafuser/seafile-healthcheck.sh
COPY assets/seafile-cron-entrypoint.sh /home/seafuser/entrypoint.sh COPY assets/cron/seafile-entrypoint.sh /home/seafuser/entrypoint.sh
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

View File

@@ -25,7 +25,7 @@ ENV GID=1000
# Copy over the Docker related files. # Copy over the Docker related files.
COPY utils/build/import-seafile-apt-key.sh / COPY utils/build/import-seafile-apt-key.sh /
COPY assets/docker-supervisord-entrypoint.sh /entrypoint.sh COPY assets/supervisord/dockerentrypoint.sh /entrypoint.sh
# Safely import Seafile APT key, then install both seafile-cli and supervisord. # Safely import Seafile APT key, then install both seafile-cli and supervisord.
RUN mkdir -p /etc/apt/sources.list.d/ ;\ RUN mkdir -p /etc/apt/sources.list.d/ ;\
@@ -52,7 +52,7 @@ RUN mkdir -p /etc/apt/sources.list.d/ ;\
useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME
# Copy over the required files for Seafile/SupervisorD. # Copy over the required files for Seafile/SupervisorD.
COPY assets/supervisord.conf assets/seafile-healthcheck.sh /home/seafuser/ COPY assets/supervisord/supervisord.conf assets/supervisord/seafile-healthcheck.sh /home/seafuser/
COPY assets/seafile-supervisord-entrypoint.sh /home/seafuser/entrypoint.sh COPY assets/supervisord/seafile-entrypoint.sh /home/seafuser/entrypoint.sh
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

View File

@@ -0,0 +1,47 @@
#!/bin/bash
# Docker Seafile client, help you mount a Seafile library as a volume.
# Copyright (C) 2019, flow.gunso@gmail.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# `seaf-cli status` output csv-like information with tabulates as separators and columns named in comment lines.
# The Seafile client should not be restarted while some statuses are occuring, such as "downloading" or "committing".
#
# This script grabs the output while ignoring the comments to iterate over the informations set to their columns,
# then it compares the statuses, when not empty, to the ones that do not require a restart. Finally either restart or don't.
seaf=/usr/bin/seaf-cli
dont_restart_on=("downloading" "committing" "waiting for sync")
restart=true
sleep 10s
while true; do
while IFS=$'\t' read -r name status progress; do
if [ $status ]; then
for dont_restart_on_status in "${dont_restart_on[@]}"; do
if [ "$status" == "$dont_restart_on_status" ]; then
restart=false; break; break
fi
done
fi
done < <($seaf status | grep -v "^#")
if $restart; then
$seaf stop
$seaf start
fi
sleep 10m
done