51 lines
1 KiB
Text
51 lines
1 KiB
Text
|
#!/bin/bash
|
||
|
|
||
|
[[ -n "$DEBUG" ]] && set -x
|
||
|
|
||
|
ACTION="$1"
|
||
|
|
||
|
set -euo pipefail
|
||
|
|
||
|
if [[ -z "$ACTION" ]]
|
||
|
then
|
||
|
echo "Usage: $0 start|stop"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
PUID="$(id -u "docker-${name}")"
|
||
|
PGID="$(id -g "docker-${name}")"
|
||
|
|
||
|
if [ "$ACTION" == "start" ]
|
||
|
then
|
||
|
docker run -d \
|
||
|
--name "${name}" \
|
||
|
--env "PUID=$PUID" \
|
||
|
--env "PGID=$PGID" \
|
||
|
--env "TZ=${timezone}" \
|
||
|
% for k, v in sorted(environment.items()):
|
||
|
--env "${k}=${v}" \
|
||
|
% endfor
|
||
|
--network host \
|
||
|
% for host_port, container_port in sorted(ports.items()):
|
||
|
--expose "127.0.0.1:${host_port}:${container_port}" \
|
||
|
% endfor
|
||
|
% for host_path, container_path in sorted(volumes.items()):
|
||
|
--volume "/var/opt/docker-engine/${name}/${host_path}:${container_path}" \
|
||
|
% endfor
|
||
|
--restart unless-stopped \
|
||
|
"${image}"
|
||
|
|
||
|
elif [ "$ACTION" == "stop" ]
|
||
|
then
|
||
|
docker stop "${name}"
|
||
|
docker rm "${name}"
|
||
|
|
||
|
else
|
||
|
echo "Unknown action $ACTION"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
% if node.has_bundle('nftables'):
|
||
|
systemctl reload nftables
|
||
|
% endif
|