@@ -35,7 +35,7 @@ services:
3535 labels :
3636 - ' docker-volume-backup.stop-during-backup=true'
3737 command : >
38- bash -c "apt-get -y update && apt-get install -y zip unzip libicu-dev && docker-php-ext-install pdo_mysql intl && docker-php-ext-enable pdo_mysql intl ; curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer &&
38+ bash -c "apt-get -y update && apt-get install -y zip unzip libicu-dev && docker-php-ext-install pdo_mysql intl; curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer &&
3939 if [ \"$$(ls -A ${WEBSERVER_DOC_ROOT}/webapp)\" ]; then composer update --working-dir=${WEBSERVER_DOC_ROOT}/webapp; else composer create-project slim/slim-skeleton:dev-master webapp && cd ${WEBSERVER_DOC_ROOT}/webapp && composer require slim/http-cache; fi;
4040 grep -qe 'date.timezone = ${LOCAL_TIMEZONE}' ${PHP_INI_DIR_PREFIX}/php/conf.d/security.ini || echo 'date.timezone = ${LOCAL_TIMEZONE}' >> ${PHP_INI_DIR_PREFIX}/php/conf.d/security.ini; php-fpm"
4141
@@ -74,8 +74,6 @@ services:
7474 NGINX_HOST : ${DOMAIN_NAME}
7575 NGINX_PORT : 80
7676 TZ : ' ${LOCAL_TIMEZONE}'
77- labels :
78- - " docker-volume-backup.stop-during-backup=true"
7977 command : bash -c "/docker-entrypoint.sh nginx -v; sh /tmp/ssl-conf.sh '${DOMAIN_NAME}' '${LETSENCRYPT_CONF_PREFIX}' '${NGINX_PREFIX}'"
8078
8179 certbot :
@@ -104,6 +102,7 @@ services:
104102 - backend
105103 - frontend
106104 volumes :
105+ - ' phpmyadmin:${WEBSERVER_DOC_ROOT}/sql'
107106 - type : bind
108107 source : ./phpmyadmin/apache2/sites-available/default-ssl.conf
109108 target : ' ${APACHE_CONFDIR_PREFIX}/sites-available/default-ssl.conf'
@@ -124,21 +123,19 @@ services:
124123 restart : unless-stopped
125124 ports :
126125 - ' 9090:443'
127- # links:
128- # - database
126+ links :
127+ - database
129128 environment :
130- # PMA_HOST: database
131- PMA_PMADB : phpmyadmin
129+ PMA_HOST : ' database'
130+ PMA_PMADB : ' phpmyadmin'
132131 PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
133132 PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
134133 MYSQL_ROOT_PASSWORD : ' ${MYSQL_ROOT_PASSWORD}'
135134 UPLOAD_LIMIT : ' ${PMA_UPLOAD_LIMIT}'
136135 MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
137136 TZ : ' ${LOCAL_TIMEZONE}'
138- labels :
139- - " docker-volume-backup.stop-during-backup=true"
140137 command : >
141- bash -c "echo ${PMA_HTPASSWD_USERNAME}:phpmyadmin:$$( printf \"%s:%s:%s\" \"${PMA_HTPASSWD_USERNAME}\" \"phpmyadmin\" \"${PMA_HTPASSWD_PASSWORD}\" | md5sum | awk '{print $$1}' ) > ${PMA_CONF_FOLDER}/.htpasswd
138+ bash -c "apt-get -y update && apt-get install -y gettext-base && envsubst < ${WEBSERVER_DOC_ROOT}/sql/create_tables.sql.template > ${WEBSERVER_DOC_ROOT}/sql/create_tables.sql && echo ${PMA_HTPASSWD_USERNAME}:phpmyadmin:$$( printf \"%s:%s:%s\" \"${PMA_HTPASSWD_USERNAME}\" \"phpmyadmin\" \"${PMA_HTPASSWD_PASSWORD}\" | md5sum | awk '{print $$1}' ) > ${PMA_CONF_FOLDER}/.htpasswd
142139 && printf 'AuthType Digest\\nAuthName \"phpmyadmin\"\\nAuthDigestProvider file\\nAuthUserFile ${PMA_CONF_FOLDER}/.htpasswd\\nRequire valid-user\\n' > ${WEBSERVER_DOC_ROOT}/.htaccess && a2enmod auth_digest;
143140 mkdir -p ${WEBSERVER_DOC_ROOT}/../upload && chown www-data:www-data ${WEBSERVER_DOC_ROOT}/../upload && chmod a+w ${WEBSERVER_DOC_ROOT}/../upload; mkdir -p ${WEBSERVER_DOC_ROOT}/../save && chown www-data:www-data ${WEBSERVER_DOC_ROOT}/../save && chmod a+w ${WEBSERVER_DOC_ROOT}/../save;
144141 grep -qxF 'ServerName 127.0.0.1' ${APACHE_CONFDIR_PREFIX}/apache2.conf || echo -e '\\nServerName 127.0.0.1' >> ${APACHE_CONFDIR_PREFIX}/apache2.conf; grep -qe 'date.timezone = ${LOCAL_TIMEZONE}' ${PHP_INI_DIR_PREFIX}/php/conf.d/security.ini || echo 'date.timezone = ${LOCAL_TIMEZONE}' >> ${PHP_INI_DIR_PREFIX}/php/conf.d/security.ini;
@@ -151,9 +148,11 @@ services:
151148 - backend
152149 volumes :
153150 - ' db:/var/lib/mysql'
151+ - ' db-backup-data:/tmp/backup'
154152 - type : bind
155153 source : ./database/conf.d/z-mysql.cnf
156154 target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
155+ - ' phpmyadmin:/docker-entrypoint-initdb.d'
157156 hostname : database
158157 restart : unless-stopped
159158 ports :
@@ -168,6 +167,8 @@ services:
168167 TZ : ' ${LOCAL_TIMEZONE}'
169168 labels :
170169 - " docker-volume-backup.stop-during-backup=true"
170+ - " docker-volume-backup.archive-pre=/bin/sh -c 'mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > /tmp/backup/db_backup_data.sql'"
171+ - " docker-volume-backup.exec-label=database"
171172 command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
172173
173174 redis :
@@ -189,29 +190,29 @@ services:
189190 environment :
190191 ALLOW_EMPTY_PASSWORD : ' yes'
191192 TZ : ' ${LOCAL_TIMEZONE}'
192- labels :
193- - " docker-volume-backup.stop-during-backup=true"
194193 command : " redis-server ${REDIS_CONF_PREFIX}/redis/redis.conf"
195194
196195 backup :
197- image : ' futurice /docker-volume-backup'
196+ image : offen /docker-volume-backup:latest
198197 container_name : backup
199198 networks :
200199 - backend
201200 volumes :
202- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
203201 - ' html:/backup/html:ro'
204202 - ' db:/backup/db:ro'
203+ - ' db-backup-data:/backup/db-backup-data:ro'
204+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
205205 - type : bind
206206 source : ./backups
207207 target : /archive
208208 hostname : backup
209209 restart : unless-stopped
210210 environment :
211- BACKUP_WAIT_SECONDS : 120
212211 BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
213212 BACKUP_FILENAME : ' backup-%Y-%m-%dT%H-%M-%S.tar.gz'
214- TZ : ' ${LOCAL_TIMEZONE}'
213+ BACKUP_RETENTION_DAYS : ' 7'
214+ EXEC_LABEL : ' database'
215+ # BACKUP_EXCLUDE_REGEXP: 'folder|folder|file|\\.log$$'
215216
216217networks :
217218 backend : null
@@ -227,6 +228,15 @@ volumes:
227228 o : bind
228229 db :
229230 name : ${DATABASE_CONT_NAME}-data
231+ db-backup-data :
232+ name : ${DATABASE_CONT_NAME}-backup-data
233+ phpmyadmin :
234+ name : phpmyadmin-sql
235+ driver : local
236+ driver_opts :
237+ type : none
238+ device : ${DIRECTORY_PATH}/phpmyadmin/sql
239+ o : bind
230240 dtredis :
231241 name : redis-data
232242 certbot-etc :
0 commit comments