diff --git a/blueprints/known-0.6.5.tgz b/blueprints/known-0.6.5.tgz deleted file mode 100644 index f006e48671a9524fcd10ef09c81f03fdda236626..0000000000000000000000000000000000000000 Binary files a/blueprints/known-0.6.5.tgz and /dev/null differ diff --git a/blueprints/wordpress.tgz b/blueprints/wordpress.tgz deleted file mode 100644 index 50cd9afdf4032763b4bd011b080be0c5f6968d68..0000000000000000000000000000000000000000 Binary files a/blueprints/wordpress.tgz and /dev/null differ diff --git a/dockerfiles/services/known/Dockerfile b/dockerfiles/services/known/Dockerfile index 71ba55b7107255c7dab9f784aad79d7de6164006..375a94684da155158f4c673359c2ad70e3ae310a 100644 --- a/dockerfiles/services/known/Dockerfile +++ b/dockerfiles/services/known/Dockerfile @@ -1,11 +1,10 @@ FROM pierreozoux/apache # Download latest version of Known into /app -RUN mkdir -p ; cd /app ; curl -L http://assets.withknown.com/releases/known-0.6.5.tgz | tar xz -RUN mkdir /uploads -RUN chown www-data:www-data /uploads -RUN cp /app/schemas/mysql/mysql.sql /initial_db.sql -RUN mv /app/htaccess.dist /app/.htaccess +RUN mkdir /uploads && \ + mkdir -p /app && \ + cd /app && \ + curl -L http://assets.withknown.com/releases/known-0.6.5.tgz | tar xz # Add script to create 'known' DB ADD run-known.sh /run-known.sh @@ -18,8 +17,6 @@ ENV DB_NAME known ENV DB_USER admin ENV DB_PASS **ChangeMe** -# to be cleaned up: - EXPOSE 80 -VOLUME ["/app"] +VOLUME ["/uploads", "/app/.htaccess"] CMD ["/run-known.sh"] diff --git a/dockerfiles/services/known/run-known.sh b/dockerfiles/services/known/run-known.sh index 3a9f3f117dfb813d3c0f44f1dfd05750d1d40f65..3c66166c152d45b1f472bc72d45e229f4475d90f 100644 --- a/dockerfiles/services/known/run-known.sh +++ b/dockerfiles/services/known/run-known.sh @@ -1,15 +1,25 @@ #!/bin/bash +# Environment creation +KNOWN_DATABASE="MySQL" +KNOWN_DBNAME="${DB_NAME}" +KNOWN_DBUSER="${DB_USER}" +KNOWN_DBPASS="${DB_PASS}" +KNOWN_DBHOST="${DB_HOST}" +KNOWN_FILESYSTEM="local" +KNOWM_UPLOADPATH="/uploads/" + +# Initialization after docker mount +if [ ! -s /app/.htaccess ]; then + cat /app/htaccess.dist > /app/.htaccess +fi + chown -R root:www-data /app +chown -R root:www-data /uploads chmod -R 650 /app -chmod -R 770 /app/known-content/ +chmod -R 660 /uploads chmod -R 660 /app/.htaccess -if [ -f /.mysql_db_created ]; then - exec /run.sh - exit 1 -fi - DB_HOST=${DB_PORT_3306_TCP_ADDR:-${DB_HOST}} DB_HOST=${DB_1_PORT_3306_TCP_ADDR:-${DB_HOST}} DB_PORT=${DB_PORT_3306_TCP_PORT:-${DB_PORT}} @@ -28,15 +38,6 @@ echo " Database Username: $DB_USER" echo " Database Password: $DB_PASS" echo "========================================================================" -echo "database = 'MySQL'" > /app/config.ini -echo "dbhost = '$DB_HOST'" >> /app/config.ini -echo "dbname = '$DB_NAME'" >> /app/config.ini -echo "dbuser = '$DB_USER'" >> /app/config.ini -echo "dbpass = '$DB_PASS'" >> /app/config.ini -echo "filesystem = 'local'" >> /app/config.ini -echo "uploadpath = '/uploads/'" >> /app/config.ini -chown root:www-data /app/config.ini -chmod 640 /app/config.ini for ((i=0;i<10;i++)) do @@ -57,9 +58,9 @@ if [[ $DB_CONNECTABLE -eq 0 ]]; then echo "Cannot create database for known" exit RET fi - if [ -f /initial_db.sql ]; then + if [ -f /app/schemas/mysql/mysql.sql ]; then echo "=> Loading initial database data to $DB_NAME" - RET=$(mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT $DB_NAME < /initial_db.sql) + RET=$(mysql -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT $DB_NAME < /app/schemas/mysql/mysql.sql) if [[ RET -ne 0 ]]; then echo "Cannot load initial database data for known" exit RET @@ -74,5 +75,5 @@ else exit $DB_CONNECTABLE fi -touch /.mysql_db_created exec /run.sh + diff --git a/dockerfiles/services/wordpress/Dockerfile b/dockerfiles/services/wordpress/Dockerfile index 2ca7ca57cf0de7d653728ad4cef3e5d31fa3b954..8e5c99b74833b99978217171c81840bb99c7fdcc 100644 --- a/dockerfiles/services/wordpress/Dockerfile +++ b/dockerfiles/services/wordpress/Dockerfile @@ -2,7 +2,8 @@ FROM pierreozoux/apache # Download latest version of Wordpress into /app RUN curl -L https://wordpress.org/wordpress-4.1.tar.gz | tar xz && \ - mv wordpress/* app + mv wordpress/* app && \ + mv /app/wp-content /wp-content ADD wp-config.php /app/wp-config.php # Add script to create 'wordpress' DB diff --git a/dockerfiles/services/wordpress/run-wordpress.sh b/dockerfiles/services/wordpress/run-wordpress.sh index db9cd27b69ee6a92ba52c1cfe4e877e72d0cce13..19a8a77ea5a5ec12f6645fe7a58bc39fbda374fa 100644 --- a/dockerfiles/services/wordpress/run-wordpress.sh +++ b/dockerfiles/services/wordpress/run-wordpress.sh @@ -1,15 +1,14 @@ #!/bin/bash +if [ ! "$(ls -A /app/wp-content)" ]; then + mv /wp-content /app/wp-content +fi + chown -R root:www-data /app chmod -R 650 /app chmod -R 770 /app/wp-content/ chmod -R 660 /app/.htaccess -if [ -f /.mysql_db_created ]; then - exec /run.sh - exit 1 -fi - DB_HOST=${DB_PORT_3306_TCP_ADDR:-${DB_HOST}} DB_HOST=${DB_1_PORT_3306_TCP_ADDR:-${DB_HOST}} DB_PORT=${DB_PORT_3306_TCP_PORT:-${DB_PORT}} @@ -64,5 +63,5 @@ else exit $DB_CONNECTABLE fi -touch /.mysql_db_created exec /run.sh + diff --git a/unit-files/known-discovery@.service b/unit-files/discovery@.service similarity index 60% rename from unit-files/known-discovery@.service rename to unit-files/discovery@.service index a2a9e2d1abf5826d7be7980a97c1edf35ad456fc..5a714ce2505e503dd3fe775988d1371279806a23 100644 --- a/unit-files/known-discovery@.service +++ b/unit-files/discovery@.service @@ -4,26 +4,19 @@ Description=%p for %i etcd registration # Requirements Requires=etcd.service -# Dependency ordering -After=etcd.service -After=known@%i.service - -# Dependency binding -BindsTo=known@%i.service - [Service] # Start ## Test whether service is accessible and then register useful information ExecStart=/bin/bash -c ' \ sleep 30; \ while true; do \ - app=`echo %p | cut -d"-" -f1`; \ + app=`echo %i | cut -d"-" -f1`; \ ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $app-%i`; \ curl -f $ip; \ if [ $? -eq 0 ]; then \ - etcdctl set /services/$app/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 60; \ + etcdctl set /services/web/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 60; \ else \ - etcdctl rm /services/$app/%i; \ + etcdctl rm /services/web/%i; \ fi; \ sleep 50; \ done' @@ -31,4 +24,4 @@ ExecStart=/bin/bash -c ' \ # Stop ExecStop=-/bin/bash -euxc ' \ app=`echo %p | cut -d"-" -f1`; \ - /usr/bin/etcdctl rm /services/$app/%i + /usr/bin/etcdctl rm /services/web/%i diff --git a/unit-files/init@.service b/unit-files/init@.service index f4051cad84ae142930aaf4aa44ebb0c5b70503b0..2a12f806106c0c0c9c7abb49372f16ecf9824e9d 100644 --- a/unit-files/init@.service +++ b/unit-files/init@.service @@ -28,4 +28,5 @@ ExecStart=/bin/bash -euxc ' \ if [ -d /data/import/%i ]; then \ cp -r /data/import/%i/* /data/domains/%i; \ rm -rf /data/import/%i; \ - fi' + fi; \ + cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem;' diff --git a/unit-files/known-importer@.service b/unit-files/known-importer@.service deleted file mode 100644 index fc39b65eb7b64791b4de7a9a2ee0eba87fa018b6..0000000000000000000000000000000000000000 --- a/unit-files/known-importer@.service +++ /dev/null @@ -1,31 +0,0 @@ -[Unit] -Description=WordPress importer - -# Requirements -Requires=init@%i.service - -# Dependency ordering -After=init@%i.service -After=mysql@%i.service -Before=known@%i.service -Before=backup@%i.timer - -# Dependency binding -BindsTo=known@%i.service - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/bash -euxc ' \ - cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem; \ - known_folder=/data/domains/%i/known; \ - if [ ! -d $known_folder/known-content ]; then \ - mkdir -p $known_folder; \ - cd $known_folder; \ - tar xvzf /data/indiehosters/blueprints/known-0.6.5.tgz; \ - touch .htaccess; \ - fi; \ - cat /data/domains/%i/mysql/.env | sed s/MYSQL_PASS/DB_PASS/ > $known_folder/.env' - -[Install] -WantedBy=known@%i.service diff --git a/unit-files/known@.service b/unit-files/known@.service index fe592dc3abd9803a1262da637d68357da8f44a1c..76eb076bab10e3d7ffc06b2e750da739584f16ca 100644 --- a/unit-files/known@.service +++ b/unit-files/known@.service @@ -3,32 +3,41 @@ Description=%p-%i # Requirements Requires=docker.service -Requires=etcd.service +Requires=init@%i.service Requires=mysql@%i.service -Requires=%p-importer@%i.service -Requires=%p-discovery@%i.service +Requires=discovery@%p-%i.service Requires=backup@%i.timer # Dependency ordering After=docker.service +After=init@%i.service After=mysql@%i.service -After=%p-importer@%i.service -Before=%p-discovery@%i.service +Before=discovery@%p-%i.service +Before=backup@%i.timer # Dependency binding BindsTo=mysql@%i.service +BindsTo=discovery@%p-%i.service [Service] Restart=always ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i +ExecStartPre=/bin/bash -euxc ' \ + application_folder=/data/domains/%i/%p; \ + if [ ! -d $application_folder ]; then \ + mkdir -p $application_folder; \ + touch $application_folder/.htaccess; \ + fi; \ + cat /data/domains/%i/mysql/.env | sed s/MYSQL_PASS/DB_PASS/ > $application_folder/.env' + ExecStart=/usr/bin/docker run \ --name %p-%i \ --link mysql-%i:db \ - -v /data/domains/%i/%p/known-content:/app/known-content \ + -v /data/domains/%i/%p/wp-content:/app/wp-content \ -v /data/domains/%i/%p/.htaccess:/app/.htaccess \ --env-file /data/domains/%i/%p/.env \ - pierreozoux/known + pierreozoux/%p ExecReload=/usr/bin/docker restart %p-%i ExecStop=/usr/bin/docker stop %p-%i diff --git a/unit-files/mysql-importer@.service b/unit-files/mysql-importer@.service deleted file mode 100644 index fffab4720966b9f12798db5ac885c7898d78bd88..0000000000000000000000000000000000000000 --- a/unit-files/mysql-importer@.service +++ /dev/null @@ -1,26 +0,0 @@ -[Unit] -Description=MySQL importer - -# Dependency ordering -After=init@%i.service -Before=mysql@%i.service - -# Dependency binding -BindsTo=mysql@%i.service - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/bash -euxc ' \ - mysql_folder=/data/domains/%i/mysql; \ - if [ ! -d /data/runtime/domains/%i/mysql ]; then \ - 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; \ - mkdir -p /data/runtime/domains/%i/mysql; \ - fi; \ - fi' - -[Install] -WantedBy=mysql@%i.service diff --git a/unit-files/mysql@.service b/unit-files/mysql@.service index af62299a158a92a70bc7a02a1293c1decc7975d3..6c91e20f2f972667704d70bd79eb1292f60546e7 100644 --- a/unit-files/mysql@.service +++ b/unit-files/mysql@.service @@ -3,17 +3,26 @@ Description=%p-%i # Requirements Requires=docker.service -Requires=%p-importer@%i.service # Dependency ordering After=docker.service -After=%p-importer@%i.service Before=backup@%i.timer [Service] Restart=always 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 \ + 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; \ + mkdir -p /data/runtime/domains/%i/mysql; \ + fi; \ + fi' + ExecStart=/usr/bin/docker run \ --name %p-%i \ -v /data/runtime/domains/%i/%p/db_files:/var/lib/mysql \ diff --git a/unit-files/static-discovery@.service b/unit-files/static-discovery@.service deleted file mode 100644 index 74de2dd4e877780702fab11ff2549e6527ff0090..0000000000000000000000000000000000000000 --- a/unit-files/static-discovery@.service +++ /dev/null @@ -1,34 +0,0 @@ -[Unit] -Description=%p for %i etcd registration - -# Requirements -Requires=etcd.service - -# Dependency ordering -After=etcd.service -After=static@%i.service - -# Dependency binding -BindsTo=static@%i.service - -[Service] -# Start -## Test whether service is accessible and then register useful information -ExecStart=/bin/bash -c ' \ - sleep 3; \ - while true; do \ - app=`echo %p | cut -d"-" -f1`; \ - ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $app-%i`; \ - curl -f $ip; \ - if [ $? -eq 0 ]; then \ - etcdctl set /services/$app/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 60; \ - else \ - etcdctl rm /services/$app/%i; \ - fi; \ - sleep 50; \ - done' - -# Stop -ExecStop=-/bin/bash -euxc ' \ - app=`echo %p | cut -d"-" -f1`; \ - /usr/bin/etcdctl rm /services/$app/%i diff --git a/unit-files/static-git-discovery@.service b/unit-files/static-git-discovery@.service deleted file mode 100644 index 9c67ab2ad1311b60cb6b3c8977087e121c4fe870..0000000000000000000000000000000000000000 --- a/unit-files/static-git-discovery@.service +++ /dev/null @@ -1,34 +0,0 @@ -[Unit] -Description=%p for %i etcd registration - -# Requirements -Requires=etcd.service - -# Dependency ordering -After=etcd.service -After=static-git@%i.service - -# Dependency binding -BindsTo=static-git@%i.service - -[Service] -# Start -## Test whether service is accessible and then register useful information -ExecStart=/bin/bash -c ' \ - sleep 3; \ - while true; do \ - app=`echo %p | cut -d"-" -f1,2`; \ - ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $app-%i`; \ - curl -f $ip; \ - if [ $? -eq 0 ]; then \ - etcdctl set /services/$app/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 60; \ - else \ - etcdctl rm /services/$app/%i; \ - fi; \ - sleep 50; \ - done' - -# Stop -ExecStop=-/bin/bash -euxc ' \ - app=`echo %p | cut -d"-" -f1`; \ - /usr/bin/etcdctl rm /services/$app/%i diff --git a/unit-files/static-git-importer@.service b/unit-files/static-git-importer@.service deleted file mode 100644 index 8e1949a2aefa7b3645a22cd51b7d9c9a107c21e6..0000000000000000000000000000000000000000 --- a/unit-files/static-git-importer@.service +++ /dev/null @@ -1,24 +0,0 @@ -[Unit] -Description=static importer - -# Requirements -Requires=init@%i.service - -# Dependency ordering -After=init@%i.service -Before=static-git@%i.service -Before=backup@%i.timer - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/bash -euxc ' \ - cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem; \ - git_folder=/data/runtime/domains/%i/static-git; \ - if [ ! -d $git_folder/www-content/.git ]; then \ - mkdir -p $git_folder; \ - git clone `cat /data/domains/%i/static-git/GITURL` $git_folder/www-content; \ - fi;' - -[Install] -WantedBy=static-git@%i.service diff --git a/unit-files/static-importer@.service b/unit-files/static-importer@.service deleted file mode 100644 index 88579c8397bf60e2c209e1893e82dafa329beb50..0000000000000000000000000000000000000000 --- a/unit-files/static-importer@.service +++ /dev/null @@ -1,24 +0,0 @@ -[Unit] -Description=static importer - -# Requirements -Requires=init@%i.service - -# Dependency ordering -After=init@%i.service -Before=static@%i.service -Before=backup@%i.timer - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/bash -euxc ' \ - cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem; \ - static_folder=/data/domains/%i/static/www-content; \ - if [ ! -f $static_folder/index.html ]; then \ - mkdir -p $static_folder; \ - echo Hello %i > $static_folder/index.html; \ - fi;' - -[Install] -WantedBy=static@%i.service diff --git a/unit-files/static@.service b/unit-files/static@.service index edec3d9c87cdb4ba68823589999b83cc9573785e..141cfa43ab94b8bd8a80d2519bc2989d3139e666 100644 --- a/unit-files/static@.service +++ b/unit-files/static@.service @@ -3,19 +3,30 @@ Description=%p-%i # Requirements Requires=docker.service -Requires=%p-importer@%i.service -Requires=%p-discovery@%i.service +Requires=init@%i.service +Requires=discovery@%p-%i.service Requires=backup@%i.timer # Dependency ordering After=docker.service -After=%p-importer@%i.service -Before=%p-discovery@%i.service +After=init@%i.service +Before=discovery@%p-%i.service +Before=backup@%i.timer + +# Dependency binding +BindsTo=discovery@%p-%i.service [Service] Restart=always ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i +ExecStartPre=/bin/bash -euxc ' \ + application_folder=/data/domains/%i/static/www-content; \ + if [ ! -d $application_folder ]; then \ + mkdir -p $application_folder; \ + echo Hello %i > $application_folder/index.html; \ + fi;' + ExecStart=/usr/bin/docker run \ --name %p-%i \ -v /data/domains/%i/%p/www-content:/app \ diff --git a/unit-files/static-git-puller@.service b/unit-files/staticgit-puller@.service similarity index 100% rename from unit-files/static-git-puller@.service rename to unit-files/staticgit-puller@.service diff --git a/unit-files/static-git-puller@.timer b/unit-files/staticgit-puller@.timer similarity index 100% rename from unit-files/static-git-puller@.timer rename to unit-files/staticgit-puller@.timer diff --git a/unit-files/static-git@.service b/unit-files/staticgit@.service similarity index 51% rename from unit-files/static-git@.service rename to unit-files/staticgit@.service index 33c7246a67a8bb09ebe0a4293ae216c086397ffe..168bf94290bbc78f9d0f1e1497bbce7173d498db 100644 --- a/unit-files/static-git@.service +++ b/unit-files/staticgit@.service @@ -3,20 +3,31 @@ Description=%p-%i # Requirements Requires=docker.service -Requires=%p-importer@%i.service -Requires=%p-discovery@%i.service +Requires=init@%i.service +Requires=discovery@%p-%i.service Requires=%p-puller@%i.timer Requires=backup@%i.timer # Dependency ordering After=docker.service -After=%p-importer@%i.service -Before=%p-discovery@%i.service +After=init@%i.service +Before=discovery@%p-%i.service +Before=backup@%i.timer + +# Dependency binding +BindsTo=discovery@%p-%i.service [Service] Restart=always ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i +ExecStartPre=/bin/bash -euxc ' \ + application_folder=/data/runtime/domains/%i/static-git; \ + if [ ! -d $application_folder/www-content/.git ]; then \ + mkdir -p $application_folder; \ + git clone `cat /data/domains/%i/static-git/GITURL` $application_folder/www-content; \ + fi;' + ExecStart=/usr/bin/docker run \ --name %p-%i \ -v /data/runtime/domains/%i/%p/www-content:/app \ diff --git a/unit-files/wordpress-discovery@.service b/unit-files/wordpress-discovery@.service deleted file mode 100644 index e1f146b405237ceda7c884a61c30f1aea9e4555e..0000000000000000000000000000000000000000 --- a/unit-files/wordpress-discovery@.service +++ /dev/null @@ -1,34 +0,0 @@ -[Unit] -Description=%p for %i etcd registration - -# Requirements -Requires=etcd.service - -# Dependency ordering -After=etcd.service -After=wordpress@%i.service - -# Dependency binding -BindsTo=wordpress@%i.service - -[Service] -# Start -## Test whether service is accessible and then register useful information -ExecStart=/bin/bash -c ' \ - sleep 30; \ - while true; do \ - app=`echo %p | cut -d"-" -f1`; \ - ip=`docker inspect --format \'{{.NetworkSettings.IPAddress}}\' $app-%i`; \ - curl -f $ip; \ - if [ $? -eq 0 ]; then \ - etcdctl set /services/$app/%i \'{"ip":"\'$ip\'", "port":"80"}\' --ttl 60; \ - else \ - etcdctl rm /services/$app/%i; \ - fi; \ - sleep 50; \ - done' - -# Stop -ExecStop=-/bin/bash -euxc ' \ - app=`echo %p | cut -d"-" -f1`; \ - /usr/bin/etcdctl rm /services/$app/%i diff --git a/unit-files/wordpress-importer@.service b/unit-files/wordpress-importer@.service deleted file mode 100644 index 4db5c238b5766edca3d8cab3c016652f63c630e4..0000000000000000000000000000000000000000 --- a/unit-files/wordpress-importer@.service +++ /dev/null @@ -1,31 +0,0 @@ -[Unit] -Description=WordPress importer - -# Requirements -Requires=init@%i.service - -# Dependency ordering -After=init@%i.service -After=mysql@%i.service -Before=wordpress@%i.service -Before=backup@%i.timer - -# Dependency binding -BindsTo=wordpress@%i.service - -[Service] -Type=oneshot -RemainAfterExit=yes -ExecStart=/bin/bash -euxc ' \ - cp /data/domains/%i/TLS/%i.pem /data/runtime/haproxy/approved-certs/%i.pem; \ - wordpress_folder=/data/domains/%i/wordpress; \ - if [ ! -d $wordpress_folder/wp-content ]; then \ - mkdir -p $wordpress_folder; \ - cd $wordpress_folder; \ - tar xvzf /data/indiehosters/blueprints/wordpress.tgz; \ - touch .htaccess; \ - fi; \ - cat /data/domains/%i/mysql/.env | sed s/MYSQL_PASS/DB_PASS/ > $wordpress_folder/.env' - -[Install] -WantedBy=wordpress@%i.service diff --git a/unit-files/wordpress@.service b/unit-files/wordpress@.service index 3f78ac6cd024e2fc0fa0c62e985b5eaafba56396..76eb076bab10e3d7ffc06b2e750da739584f16ca 100644 --- a/unit-files/wordpress@.service +++ b/unit-files/wordpress@.service @@ -3,32 +3,41 @@ Description=%p-%i # Requirements Requires=docker.service -Requires=etcd.service +Requires=init@%i.service Requires=mysql@%i.service -Requires=%p-importer@%i.service -Requires=%p-discovery@%i.service +Requires=discovery@%p-%i.service Requires=backup@%i.timer # Dependency ordering After=docker.service +After=init@%i.service After=mysql@%i.service -After=%p-importer@%i.service -Before=%p-discovery@%i.service +Before=discovery@%p-%i.service +Before=backup@%i.timer # Dependency binding BindsTo=mysql@%i.service +BindsTo=discovery@%p-%i.service [Service] Restart=always ExecStartPre=-/usr/bin/docker kill %p-%i ExecStartPre=-/usr/bin/docker rm %p-%i +ExecStartPre=/bin/bash -euxc ' \ + application_folder=/data/domains/%i/%p; \ + if [ ! -d $application_folder ]; then \ + mkdir -p $application_folder; \ + touch $application_folder/.htaccess; \ + fi; \ + cat /data/domains/%i/mysql/.env | sed s/MYSQL_PASS/DB_PASS/ > $application_folder/.env' + ExecStart=/usr/bin/docker run \ --name %p-%i \ --link mysql-%i:db \ -v /data/domains/%i/%p/wp-content:/app/wp-content \ -v /data/domains/%i/%p/.htaccess:/app/.htaccess \ --env-file /data/domains/%i/%p/.env \ - pierreozoux/wordpress + pierreozoux/%p ExecReload=/usr/bin/docker restart %p-%i ExecStop=/usr/bin/docker stop %p-%i