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

# Requirements
Requires=docker.service

Pierre Ozoux's avatar
Pierre Ozoux committed
# Dependency ordering
After=docker.service
Pierre Ozoux's avatar
Pierre Ozoux committed
After=init.service
Before=backup@%i.timer
Pierre Ozoux's avatar
Pierre Ozoux committed

# Dependency binding
BindsTo=lamp@%i.service

[Service]
Restart=always
Type=notify
NotifyAccess=all
ExecStartPre=/usr/bin/docker run --rm -v /opt/bin:/opt/bin ibuildthecloud/systemd-docker
Pierre Ozoux's avatar
Pierre Ozoux committed
ExecStartPre=-/usr/bin/docker kill %p-%i
ExecStartPre=-/usr/bin/docker rm %p-%i
ExecStartPre=/bin/bash -euxc ' \
  mysql_folder=/data/domains/%i/mysql; \
  if [ ! -d /data/runtime/domains/%i/mysql ]; then \
    mkdir -p /data/runtime/domains/%i/mysql/db_files; \
    if [ ! -d $mysql_folder ]; then \
      mkdir -p $mysql_folder; \
      pass=`echo $RANDOM  ${date} | md5sum | base64 | cut -c-10`; \
      echo MYSQL_PASS=$pass > $mysql_folder/.env; \
    else \
      cp $mysql_folder/dump.sql /data/runtime/domains/%i/mysql/db_files/; \
ExecStart=/opt/bin/systemd-docker run \
Pierre Ozoux's avatar
Pierre Ozoux committed
  --name %p-%i \
  -v /data/runtime/domains/%i/%p/db_files:/var/lib/mysql \
  -e STARTUP_SQL="/var/lib/mysql/dump.sql" \
  --env-file /data/domains/%i/%p/.env \
  pierreozoux/mysql
ExecReload=/usr/bin/docker restart %p-%i
Pierre Ozoux's avatar
Pierre Ozoux committed
ExecStop=/usr/bin/docker stop %p-%i

[Install]
WantedBy=multi-user.target