64 lines
1.6 KiB
Bash
64 lines
1.6 KiB
Bash
#!/bin/sh
|
|
SERVICE_FILE=$1
|
|
DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL:-safebox}
|
|
SETUP_VERSION=${SETUP_VERSION:-latest}
|
|
|
|
if [[ -n "$DOCKER_REGISTRY_URL" && "$DOCKER_REGISTRY_URL" != "null" ]]; then
|
|
SETUP="/setup"
|
|
else
|
|
SETUP="setup"
|
|
DOCKER_REGISTRY_URL=""
|
|
fi
|
|
|
|
DNS_DIR="/etc/system/data/dns"
|
|
DNS="--env DNS_DIR=$DNS_DIR"
|
|
DNS_PATH="--volume $DNS_DIR:/etc/system/data/dns:rw"
|
|
HOST_FILE=$DNS_DIR"/hosts.local"
|
|
mkdir -p $DNS_DIR
|
|
touch $HOST_FILE;
|
|
|
|
VOLUME_MOUNTS="";
|
|
|
|
if [ -d /etc/user/data ]; then
|
|
VOLUME_MOUNTS=$VOLUME_MOUNTS" -v /etc/user/data:/etc/user/data"
|
|
fi
|
|
|
|
if [ -d /etc/user/config ]; then
|
|
VOLUME_MOUNTS=$VOLUME_MOUNTS" -v /etc/user/config:/etc/user/config"
|
|
fi
|
|
|
|
if [ -d /etc/user/secret ]; then
|
|
VOLUME_MOUNTS=$VOLUME_MOUNTS" -v /etc/user/secret:/etc/user/secret"
|
|
fi
|
|
|
|
if [ -d /etc/system/data ]; then
|
|
VOLUME_MOUNTS=$VOLUME_MOUNTS" -v /etc/system/data:/etc/system/data"
|
|
fi
|
|
|
|
if [ -d /etc/system/config ]; then
|
|
VOLUME_MOUNTS=$VOLUME_MOUNTS" -v /etc/system/config:/etc/system/config"
|
|
fi
|
|
|
|
if [ -d /etc/system/log ]; then
|
|
VOLUME_MOUNTS=$VOLUME_MOUNTS" -v /etc/system/log:/etc/system/log"
|
|
fi
|
|
|
|
CA_PATH=/etc/system/data/ssl/certs
|
|
CA="--env CA_PATH=$CA_PATH"
|
|
CA_FILE="--volume $CA_PATH:$CA_PATH:ro"
|
|
mkdir -p $CA_PATH
|
|
|
|
service_exec="/usr/bin/docker run --rm \
|
|
$DNS \
|
|
$CA \
|
|
-w /etc/user/config/services/ \
|
|
$VOLUME_MOUNTS \
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
--env VOLUME_MOUNTS="$(echo $VOLUME_MOUNTS | base64 -w0)" \
|
|
--env DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
|
|
--env SETUP_VERSION=$SETUP_VERSION \
|
|
--env HOST_FILE=$HOST_FILE \
|
|
$DOCKER_REGISTRY_URL$SETUP:$SETUP_VERSION"
|
|
|
|
$service_exec $SERVICE_FILE start
|