Skip to content
Snippets Groups Projects
web@.service 1.06 KiB
Newer Older
Pierre Ozoux's avatar
Pierre Ozoux committed
[Unit]
Description=%p-%i

# Requirements
Requires=docker.service
Requires=backup@%i.timer

# Dependency ordering
After=docker.service
Before=backup@%i.timer

[Service]
Restart=always
Pierre Ozoux's avatar
Pierre Ozoux committed
RestartSec=20
TimeoutStartSec=0
Pierre Ozoux's avatar
Pierre Ozoux committed
Type=notify
NotifyAccess=all
EnvironmentFile=/data/domains/%i/.env
Environment=URL=%i
ExecStartPre=/usr/bin/docker run --rm -v /opt/bin:/opt/bin ibuildthecloud/systemd-docker
ExecStartPre=-/usr/bin/docker kill %i
ExecStartPre=-/usr/bin/docker rm %i
ExecStartPre=/bin/cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem
ExecStart=/bin/bash -euxc ' \
  /opt/bin/systemd-docker --env run \
    --rm \
    --name %i \
Pierre Ozoux's avatar
Pierre Ozoux committed
    -v /data/runtime/domains/%i/log/apache2:/var/log/apache2 \
Pierre Ozoux's avatar
Pierre Ozoux committed
    ${DOCKER_ARGUMENTS} \
    pierreozoux/${APPLICATION}'
ExecStartPost=/bin/bash -c ' \
  ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' %i`; \
  /usr/bin/etcdctl --peers 172.17.42.1:4001 set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\'
Pierre Ozoux's avatar
Pierre Ozoux committed
ExecStop=/usr/bin/docker stop %i
ExecStopPost=-/usr/bin/etcdctl --peers 172.17.42.1:4001 rm /services/web/%i
Pierre Ozoux's avatar
Pierre Ozoux committed