Support for multiple libraries synchronization (#44, #43, #41) Support for Docker Secrets (#25) Support for Seafile client's version through Docker tags (#9) Mock Seafile server for testings (#6) Revised project layout and workflow (#38, #39) Working Docker Hub description publishing (#10)
56 lines
2.0 KiB
Bash
56 lines
2.0 KiB
Bash
# !/bin/bash
|
|
|
|
# Docker Seafile client, help you mount a Seafile library as a volume.
|
|
# Copyright (C) 2019-2020, 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/>.
|
|
|
|
|
|
set -ex
|
|
|
|
raise() {
|
|
echo $1
|
|
exit 1
|
|
}
|
|
|
|
# Validate the required parameters.
|
|
# [[ -z "$DOCKER_HUB_BOT_USERNAME" ]] && raise "Missing DOCKER_HUB_BOT_USERNAME envvar."
|
|
# [[ -z "$DOCKER_HUB_BOT_TOKEN" ]] && raise "Missing DOCKER_HUB_BOT_TOKEN envvar."
|
|
# [[ -z "$DOCKER_HUB_OWNER_USERNAME" ]] && raise "Missing DOCKER_HUB_OWNER_USERNAME envvar."
|
|
# [[ -z "$DOCKER_HUB_OWNER_TOKEN" ]] && raise "Missing DOCKER_HUB_OWNER_TOKEN envvar."
|
|
# [[ -z "$DOCKER_HUB_IMAGE" ]] && raise "Missing DOCKER_HUB_IMAGE envvar"
|
|
|
|
# Grab version with the container
|
|
version="$(docker run --rm seafile-client:$TARGET cat -s /SEAFILE_VERSION)"
|
|
version="$(echo ${version%-*})"
|
|
|
|
# Output the version to an artifact for documentation rendering.
|
|
mkdir -p versions/
|
|
echo $version >> "versions/$TARGET"
|
|
|
|
# Generate version tags.
|
|
tags=()
|
|
#[[ "$TARGET" =~ "unstable" ]] && tags+=("latest")
|
|
for version_component in $(echo $version | tr '.' '\n'); do
|
|
tag+="$version_component"
|
|
tags+=("$tag")
|
|
tag+="."
|
|
done
|
|
|
|
# Tag then push to the Docker Hub registry.
|
|
echo $DOCKER_HUB_BOT_TOKEN | docker login --password-stdin --username $DOCKER_HUB_BOT_USERNAME
|
|
for tag in "${tags[@]}"; do
|
|
docker tag seafile-client:$TARGET $DOCKER_HUB_IMAGE:$tag
|
|
docker push $DOCKER_HUB_IMAGE:$tag
|
|
done |