46 lines
1.3 KiB
Bash
46 lines
1.3 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -euo pipefail
|
||
|
|
||
|
DOCKER_COMPOSE_VERSION="v2.2.3"
|
||
|
DOCKER_COMPOSE_SOURCE="https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64"
|
||
|
DOCKER_COMPOSE_DESTINATION="/home/${FLOW_USERNAME}/.docker/cli-plugins/docker-compose"
|
||
|
|
||
|
# Upgrade system and install required packages
|
||
|
apk update
|
||
|
apk upgrade
|
||
|
|
||
|
apk add curl \
|
||
|
docker \
|
||
|
gettext \
|
||
|
shadow \
|
||
|
tzdata
|
||
|
|
||
|
groupadd -g "${FLOW_GID}" "${FLOW_USERNAME}"
|
||
|
useradd -s /bin/bash -g "${FLOW_GID}" -u "${FLOW_UID}" -m -G docker "${FLOW_USERNAME}"
|
||
|
|
||
|
# Set the timezone and local time
|
||
|
mkdir -p /etc/zoneinfo/Europe
|
||
|
chmod -R 0755 /etc/zoneinfo
|
||
|
cp /usr/share/zoneinfo/Europe/London /etc/zoneinfo/Europe/
|
||
|
ln -fs /etc/zoneinfo/Europe/London /etc/localtime
|
||
|
echo "Europe/London" > /etc/timezone
|
||
|
apk del tzdata
|
||
|
|
||
|
mkdir -p \
|
||
|
"/home/${FLOW_USERNAME}/.docker/cli-plugins" \
|
||
|
"${ROOT_SETUP_DIRECTORY}/template/compose" \
|
||
|
"${ROOT_SETUP_DIRECTORY}/template/traefik" \
|
||
|
"${ROOT_SETUP_DIRECTORY}/template/gitea"
|
||
|
|
||
|
curl -SL "${DOCKER_COMPOSE_SOURCE}" -o "${DOCKER_COMPOSE_DESTINATION}"
|
||
|
|
||
|
chown "${FLOW_USERNAME}":"${FLOW_USERNAME}" "${DOCKER_COMPOSE_DESTINATION}"
|
||
|
chmod u+x "${DOCKER_COMPOSE_DESTINATION}"
|
||
|
|
||
|
cat <<EOF > ${ROOT_SETUP_DIRECTORY}/env
|
||
|
export FLOW_USERNAME=${FLOW_USERNAME}
|
||
|
export FLOW_GID=${FLOW_GID}
|
||
|
export ROOT_SETUP_DIRECTORY=${ROOT_SETUP_DIRECTORY}
|
||
|
EOF
|