Remove supervisord and bash versions
This commit is contained in:
@@ -1,56 +0,0 @@
|
|||||||
# 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/>.
|
|
||||||
|
|
||||||
FROM debian:jessie-slim
|
|
||||||
|
|
||||||
# Prevent the packages installation to halt.
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
|
||||||
# Specify the user running Seafile.
|
|
||||||
ENV UNAME=seafuser
|
|
||||||
ENV UID=1000
|
|
||||||
ENV GID=1000
|
|
||||||
|
|
||||||
# Copy over the Docker related files.
|
|
||||||
COPY utils/build/import-seafile-apt-key.sh /
|
|
||||||
COPY assets/bash/docker-entrypoint.sh /entrypoint.sh
|
|
||||||
|
|
||||||
# Safely import Seafile APT key, then install both seafile-cli and supervisord.
|
|
||||||
RUN mkdir -p /etc/apt/sources.list.d/ ;\
|
|
||||||
echo "deb http://deb.seadrive.org jessie main" \
|
|
||||||
> /etc/apt/sources.list.d/seafile.list ;\
|
|
||||||
/bin/bash /import-seafile-apt-key.sh ;\
|
|
||||||
apt-get update ;\
|
|
||||||
apt-get install \
|
|
||||||
-o Dpkg::Options::="--force-confold" \
|
|
||||||
-y seafile-cli ;\
|
|
||||||
apt-get clean ;\
|
|
||||||
apt-get autoclean \
|
|
||||||
-o APT::Clean-Installed=true ;\
|
|
||||||
rm \
|
|
||||||
-f \
|
|
||||||
/var/log/fsck/*.log \
|
|
||||||
/var/log/apt/*.log \
|
|
||||||
/var/cache/debconf/*.dat-old \
|
|
||||||
/import-seafile-apt-key.sh ;\
|
|
||||||
mkdir /volume ;\
|
|
||||||
groupadd -g $GID -o $UNAME ;\
|
|
||||||
useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME
|
|
||||||
|
|
||||||
# Copy over the required files for Seafile/SupervisorD.
|
|
||||||
COPY assets/bash/seafile-healthcheck.sh /home/seafuser/
|
|
||||||
COPY assets/bash/seafile-entrypoint.sh /home/seafuser/entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Check mandatory Seafile configuration have been properly set.
|
|
||||||
if [ -z $SEAF_SERVER_URL ]; then echo "The \$SEAF_SERVER_URL was not defined. Stopping container..."; exit 1; fi
|
|
||||||
if [ -z $SEAF_USERNAME ]; then echo "The \$SEAF_USERNAME was not defined. Stopping container..."; exit 1; fi
|
|
||||||
if [ -z $SEAF_PASSWORD ]; then echo "The \$SEAF_PASSWORD was not defined. Stopping container..."; exit 1; fi
|
|
||||||
if [ -z $SEAF_LIBRARY_UUID ]; then echo "The \$SEAF_LIBRARY_UUID was not defined. Stopping container..."; exit 1; fi
|
|
||||||
|
|
||||||
# Update the user ID, if the $UID changed.
|
|
||||||
if [ "$UID" != "1000" ]; then
|
|
||||||
usermod -u $UID $UNAME
|
|
||||||
# What if the $UID already exists ?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Change the group, if the $GID changed.
|
|
||||||
if [ "$GID" != "1000" ]; then
|
|
||||||
getent group | grep ":$GID:" >/dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
usermod -g $GID -G 1000 $UNAME
|
|
||||||
else
|
|
||||||
groupmod -g $GID $UNAME
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set the files ownership.
|
|
||||||
chown $UID.$GID -R /home/seafuser/seafile-healthcheck.sh
|
|
||||||
chown $UID.$GID -R /home/seafuser/entrypoint.sh
|
|
||||||
chown $UID.$GID -R /volume
|
|
||||||
|
|
||||||
# Run the Seafile client as the container user.
|
|
||||||
su - $UNAME << EO
|
|
||||||
export SEAF_SERVER_URL=$SEAF_SERVER_URL
|
|
||||||
export SEAF_USERNAME=$SEAF_USERNAME
|
|
||||||
export SEAF_PASSWORD=$SEAF_PASSWORD
|
|
||||||
export SEAF_LIBRARY_UUID=$SEAF_LIBRARY_UUID
|
|
||||||
export UNAME=$UNAME
|
|
||||||
/bin/bash /home/seafuser/entrypoint.sh
|
|
||||||
EO
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Define variable shortcuts for readability purposes.
|
|
||||||
seafile_ini=~/.ccnet/seafile.ini
|
|
||||||
seafile_sock=~/.seafile/seafile-data/seafile.sock
|
|
||||||
|
|
||||||
# Prepare the directories.
|
|
||||||
mkdir ~/.seafile
|
|
||||||
|
|
||||||
# Safely initialise the Seafile client.
|
|
||||||
/usr/bin/seaf-cli init -d ~/.seafile
|
|
||||||
while [ ! -f $seafile_ini ]; do sleep 1; done
|
|
||||||
|
|
||||||
# Safely start the Seafile daemon.
|
|
||||||
/usr/bin/seaf-cli start
|
|
||||||
while [ ! -S $seafile_sock ]; do sleep 1; done
|
|
||||||
|
|
||||||
# Start the synchronisation.
|
|
||||||
/usr/bin/seaf-cli sync -u $SEAF_USERNAME -p $SEAF_PASSWORD -s $SEAF_SERVER_URL -l $SEAF_LIBRARY_UUID -d /volume
|
|
||||||
|
|
||||||
# Run the infinite Seafile restart.
|
|
||||||
source ~/seafile-healthcheck.sh
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
#!/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")
|
|
||||||
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
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
deb http://deb.seadrive.org jessie main
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
# 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/>.
|
|
||||||
|
|
||||||
FROM debian:jessie-slim
|
|
||||||
|
|
||||||
# Prevent the packages installation to halt.
|
|
||||||
ENV DEBIAN_FRONTEND noninteractive
|
|
||||||
# Specify the user running Seafile.
|
|
||||||
ENV UNAME=seafuser
|
|
||||||
ENV UID=1000
|
|
||||||
ENV GID=1000
|
|
||||||
|
|
||||||
# Copy over the Docker related files.
|
|
||||||
COPY utils/build/import-seafile-apt-key.sh /
|
|
||||||
COPY assets/supervisord/dockerentrypoint.sh /entrypoint.sh
|
|
||||||
|
|
||||||
# Safely import Seafile APT key, then install both seafile-cli and supervisord.
|
|
||||||
RUN mkdir -p /etc/apt/sources.list.d/ ;\
|
|
||||||
echo "deb http://deb.seadrive.org jessie main" \
|
|
||||||
> /etc/apt/sources.list.d/seafile.list ;\
|
|
||||||
/bin/bash /import-seafile-apt-key.sh ;\
|
|
||||||
apt-get update ;\
|
|
||||||
apt-get install \
|
|
||||||
-o Dpkg::Options::="--force-confold" \
|
|
||||||
-y \
|
|
||||||
seafile-cli \
|
|
||||||
supervisor ;\
|
|
||||||
apt-get clean ;\
|
|
||||||
apt-get autoclean \
|
|
||||||
-o APT::Clean-Installed=true ;\
|
|
||||||
rm \
|
|
||||||
-f \
|
|
||||||
/var/log/fsck/*.log \
|
|
||||||
/var/log/apt/*.log \
|
|
||||||
/var/cache/debconf/*.dat-old \
|
|
||||||
/import-seafile-apt-key.sh ;\
|
|
||||||
mkdir /volume ;\
|
|
||||||
groupadd -g $GID -o $UNAME ;\
|
|
||||||
useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME
|
|
||||||
|
|
||||||
# Copy over the required files for Seafile/SupervisorD.
|
|
||||||
COPY assets/supervisord/supervisord.conf assets/supervisord/seafile-healthcheck.sh /home/seafuser/
|
|
||||||
COPY assets/supervisord/seafile-entrypoint.sh /home/seafuser/entrypoint.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Check mandatory Seafile configuration have been properly set.
|
|
||||||
if [ -z $SEAF_SERVER_URL ]; then echo "The \$SEAF_SERVER_URL was not defined. Stopping container..."; exit 1; fi
|
|
||||||
if [ -z $SEAF_USERNAME ]; then echo "The \$SEAF_USERNAME was not defined. Stopping container..."; exit 1; fi
|
|
||||||
if [ -z $SEAF_PASSWORD ]; then echo "The \$SEAF_PASSWORD was not defined. Stopping container..."; exit 1; fi
|
|
||||||
if [ -z $SEAF_LIBRARY_UUID ]; then echo "The \$SEAF_LIBRARY_UUID was not defined. Stopping container..."; exit 1; fi
|
|
||||||
|
|
||||||
# Update the user ID, if the $UID changed.
|
|
||||||
if [ "$UID" != "1000" ]; then
|
|
||||||
usermod -u $UID $UNAME
|
|
||||||
# TODO: What if the $UID already exists ?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Change the group, if the $GID changed.
|
|
||||||
if [ "$GID" != "1000" ]; then
|
|
||||||
getent group | grep ":$GID:" >/dev/null
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
usermod -g $GID -G 1000 $UNAME
|
|
||||||
else
|
|
||||||
groupmod -g $GID $UNAME
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set the files ownership.
|
|
||||||
chown $UID.$GID -R /home/seafuser/supervisord.conf
|
|
||||||
chown $UID.$GID -R /home/seafuser/seafile-healthcheck.sh
|
|
||||||
chown $UID.$GID -R /home/seafuser/entrypoint.sh
|
|
||||||
chown $UID.$GID -R /volume
|
|
||||||
|
|
||||||
# Run the Seafile client as the container user.
|
|
||||||
su - $UNAME << EO
|
|
||||||
export SEAF_SERVER_URL=$SEAF_SERVER_URL
|
|
||||||
export SEAF_USERNAME=$SEAF_USERNAME
|
|
||||||
export SEAF_PASSWORD=$SEAF_PASSWORD
|
|
||||||
export SEAF_LIBRARY_UUID=$SEAF_LIBRARY_UUID
|
|
||||||
export UNAME=$UNAME
|
|
||||||
/bin/bash /home/seafuser/entrypoint.sh
|
|
||||||
EO
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Define variable shortcuts for readability purposes.
|
|
||||||
seafile_ini=~/.ccnet/seafile.ini
|
|
||||||
seafile_sock=~/.seafile/seafile-data/seafile.sock
|
|
||||||
supervisord_conf=~/supervisord.conf
|
|
||||||
supervisord_pid=~/.supervisord/supervisord.pid
|
|
||||||
supervisord_log=~/.supervisord/supervisord.log
|
|
||||||
|
|
||||||
# Prepare the directories.
|
|
||||||
mkdir ~/.seafile
|
|
||||||
mkdir ~/.supervisord
|
|
||||||
|
|
||||||
# Safely initialise the Seafile client.
|
|
||||||
/usr/bin/seaf-cli init -d ~/.seafile
|
|
||||||
while [ ! -f $seafile_ini ]; do sleep 1; done
|
|
||||||
|
|
||||||
# Safely start the Seafile daemon.
|
|
||||||
/usr/bin/seaf-cli start
|
|
||||||
while [ ! -S $seafile_sock ]; do sleep 1; done
|
|
||||||
|
|
||||||
# Start the synchronisation.
|
|
||||||
/usr/bin/seaf-cli sync -u $SEAF_USERNAME -p $SEAF_PASSWORD -s $SEAF_SERVER_URL -l $SEAF_LIBRARY_UUID -d /volume
|
|
||||||
|
|
||||||
# Start the supervisord.
|
|
||||||
/usr/bin/supervisord -u $UNAME -c $supervisord_conf -j $supervisord_pid -l $supervisord_log
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
#!/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")
|
|
||||||
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
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
# 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/>.
|
|
||||||
|
|
||||||
# Run in the foreground to keep the container running.
|
|
||||||
[supervisord]
|
|
||||||
nodaemon=true
|
|
||||||
|
|
||||||
# Manage the Seafile daemon.
|
|
||||||
[unix_http_socket]
|
|
||||||
file=~/.seafile/seafile-data/seafile.sock
|
|
||||||
|
|
||||||
# Manage the infinite `seaf-cli start`.
|
|
||||||
[program:seaf-cli-start-loop]
|
|
||||||
command=/bin/bash /home/seafuser/seafile-healthcheck.sh
|
|
||||||
process_name=%(program_name)s
|
|
||||||
numprocs=1
|
|
||||||
autostart=true
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
not_imported=true
|
|
||||||
while $not_imported; do
|
|
||||||
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61
|
|
||||||
if [ $? -eq 0 ]; then
|
|
||||||
not_imported=false
|
|
||||||
else
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Restrict to pipeline triggered by pushes.
|
|
||||||
if [ $CI_PIPELINE_SOURCE != "push" ]; then
|
|
||||||
echo "This must be only ran from pushes."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Login with Docker Registry.
|
|
||||||
echo $CI_REGISTRY_BOT_PASSWORD | docker login -u $CI_REGISTRY_BOT_USERNAME docker.io --password-stdin
|
|
||||||
|
|
||||||
# Build and push as staging.
|
|
||||||
docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging-supervisord -f assets/supervisord/Dockerfile .
|
|
||||||
docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging-cron -f assets/cron/Dockerfile .
|
|
||||||
docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging-bash -f assets/bash/Dockerfile .
|
|
||||||
docker push index.docker.io/$CI_REGISTRY_IMAGE:staging-supervisord
|
|
||||||
docker push index.docker.io/$CI_REGISTRY_IMAGE:staging-cron
|
|
||||||
docker push index.docker.io/$CI_REGISTRY_IMAGE:staging-bash
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Restrict production build to tag matching MAJOR.MINOR.REVISION.
|
|
||||||
if ! [[ "$CI_COMMIT_TAG" =~ ^[0-9]+[.][0-9]+[.][0-9]+$ ]]; then
|
|
||||||
echo "Version number must match major.minor.revision!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# When this stage is ran from 'push', the build target is BUILD_LATEST.
|
|
||||||
# When this stage is ran from 'trigger', the build target must be provided.
|
|
||||||
# Otherwise, stop the stage.
|
|
||||||
if [ $CI_PIPELINE_SOURCE == "push" ]; then
|
|
||||||
BUILD_LATEST=true
|
|
||||||
elif [ $CI_PIPELINE_SOURCE == "trigger" ]; then
|
|
||||||
if [ -z $BUILD_LATEST ] && \
|
|
||||||
[ -z $BUILD_MAJOR ] && \
|
|
||||||
[ -z $BUILD_MINOR ] && \
|
|
||||||
[ -z $BUILD_REVISION ]; then
|
|
||||||
echo "You must provide build targets to this stage when ran from Pipeline Triggers."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "This stage is restricted to 'push' or 'trigger' Pipeline sources."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cascade the builds by inheritance.
|
|
||||||
if [ $BUILD_LATEST ]; then BUILD_MAJOR=true; BUILD_MINOR=true; BUILD_REVISION=true; fi
|
|
||||||
if [ $BUILD_MAJOR ]; then BUILD_MINOR=true; BUILD_REVISION=true; fi
|
|
||||||
if [ $BUILD_MINOR ]; then BUILD_REVISION=true; fi
|
|
||||||
|
|
||||||
# Define MAJOR, MINOR and REVISION version numbers.
|
|
||||||
MAJOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $1'})
|
|
||||||
MINOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $2'})
|
|
||||||
REVISION_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $3'})
|
|
||||||
MAJOR=$MAJOR_NUMBER
|
|
||||||
MINOR=$MAJOR.$MINOR_NUMBER
|
|
||||||
REVISION=$MINOR.$REVISION_NUMBER
|
|
||||||
|
|
||||||
# Always build with all tags, there's a single build anyway.
|
|
||||||
docker build \
|
|
||||||
-t index.docker.io/$CI_REGISTRY_IMAGE:latest \
|
|
||||||
-t index.docker.io/$CI_REGISTRY_IMAGE:$MAJOR \
|
|
||||||
-t index.docker.io/$CI_REGISTRY_IMAGE:$MINOR \
|
|
||||||
-t index.docker.io/$CI_REGISTRY_IMAGE:$REVISION .
|
|
||||||
|
|
||||||
# Login with Docker Registry.
|
|
||||||
echo $CI_REGISTRY_BOT_PASSWORD | docker login -u $CI_REGISTRY_BOT_USERNAME docker.io --password-stdin
|
|
||||||
|
|
||||||
# Only push requested builds.
|
|
||||||
if [ $BUILD_LATEST ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:latest; fi
|
|
||||||
if [ $BUILD_MAJOR ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:$MAJOR; fi
|
|
||||||
if [ $BUILD_MINOR ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:$MINOR; fi
|
|
||||||
if [ $BUILD_REVISION ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:$REVISION; fi
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Restrict to pipeline triggered by pushes.
|
|
||||||
if [ $CI_PIPELINE_SOURCE != "push" ]; then
|
|
||||||
echo "This must be only ran from pushes."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Login with Docker Registry.
|
|
||||||
echo $CI_REGISTRY_BOT_PASSWORD | docker login -u $CI_REGISTRY_BOT_USERNAME docker.io --password-stdin
|
|
||||||
|
|
||||||
# Build and push as staging.
|
|
||||||
docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging .
|
|
||||||
docker push index.docker.io/$CI_REGISTRY_IMAGE:staging
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/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/>.
|
|
||||||
|
|
||||||
# Based upon https://gist.github.com/jlhawn/8f218e7c0b14c941c41f
|
|
||||||
# and https://github.com/moikot/golang-dep/blob/master/.travis/push.sh
|
|
||||||
|
|
||||||
# This action can only be done with the actual owner of the repository,
|
|
||||||
# unless you can extend the collaborator's permissions but as far as I know, you can't.
|
|
||||||
|
|
||||||
# Install required system packages.
|
|
||||||
apk add curl jq
|
|
||||||
|
|
||||||
# Get a token from hub.docker.com with the owner credentials.
|
|
||||||
token=$(curl -s \
|
|
||||||
-X POST \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{"username": "'"$CI_REGISTRY_OWNER_USERNAME"'", "password": "'"$CI_REGISTRY_OWNER_PASSWORD"'"}' \
|
|
||||||
https://hub.docker.com/v2/users/login/ | jq -r .token)
|
|
||||||
|
|
||||||
# Generate a JSON with the README.md as the full_description.
|
|
||||||
json=$(jq -n \
|
|
||||||
--arg readme "$(<README.md)" \
|
|
||||||
'{"full_description": $readme}')
|
|
||||||
|
|
||||||
# Update the Docker Hub repository's full_description.
|
|
||||||
curl -s -L \
|
|
||||||
-X PATCH \
|
|
||||||
-d "$json" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-H "Authorization: JWT $token" \
|
|
||||||
https://cloud.docker.com/v2/repositories/$CI_REGISTRY_IMAGE/
|
|
||||||
Reference in New Issue
Block a user