@@ -36,7 +36,7 @@ services:
3636 labels :
3737 - ' docker-volume-backup.stop-during-backup=true'
3838 command : >
39- bash -c "apt-get -y update && apt-get install -y zip unzip libicu-dev && docker-php-ext-install pdo_mysql intl && pecl install -o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis pdo_mysql intl && curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
39+ bash -c "apt-get -y update && apt-get install -y zip unzip libicu-dev && docker-php-ext-install pdo_mysql intl && if pecl install -p -- redis; then pecl install - o -f redis && rm -rf /tmp/pear && docker-php-ext-enable redis; fi; curl -sS https://getcomposer.org/installer | php && mv composer.phar /usr/local/bin/composer
4040 && if [ -f \"/app/basic/config/app_local.php\" ]; then composer update --prefer-dist cakephp/cakephp:~4.0 --working-dir=/app/basic --no-interaction --ignore-platform-req=ext-intl; else composer create-project --prefer-dist cakephp/app:~4.0 basic --working-dir=/app --no-interaction --ignore-platform-req=ext-intl; fi
4141 && sed \"s/DB_USER/${DB_USER}/;s/DB_PASSWORD/${DB_PASSWORD}/;s/DB_NAME/${DB_NAME}/;s/__SALT__/$$(tr -dc '[:alnum:]' </dev/urandom | head -c 32)/\" ${WEBSERVER_DOC_ROOT}/app_local.php > /app/basic/config/app_local.php;
4242 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"
@@ -61,8 +61,6 @@ services:
6161 - cakephp
6262 environment :
6363 TZ : ' ${LOCAL_TIMEZONE}'
64- labels :
65- - " docker-volume-backup.stop-during-backup=true"
6664
6765 certbot :
6866 depends_on :
@@ -112,9 +110,7 @@ services:
112110 environment :
113111 NGINX_HOST : ${DOMAIN_NAME}
114112 NGINX_PORT : 80
115- TZ : ' ${LOCAL_TIMEZONE}'
116- labels :
117- - " docker-volume-backup.stop-during-backup=true"
113+ TZ : ' ${LOCAL_TIMEZONE}'
118114 command : bash -c "/docker-entrypoint.sh nginx -v; sh /tmp/ssl-proxyconf.sh '${DOMAIN_NAME}' '${LETSENCRYPT_CONF_PREFIX}' '${PROXY_PREFIX}'"
119115
120116 phpmyadmin :
@@ -150,15 +146,13 @@ services:
150146 # - database
151147 environment :
152148 # PMA_HOST: database
153- PMA_PMADB : phpmyadmin
149+ PMA_PMADB : ' phpmyadmin'
154150 PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
155151 PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
156152 MYSQL_ROOT_PASSWORD : ' ${MYSQL_ROOT_PASSWORD}'
157153 UPLOAD_LIMIT : ' ${PMA_UPLOAD_LIMIT}'
158154 MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
159155 TZ : ' ${LOCAL_TIMEZONE}'
160- labels :
161- - " docker-volume-backup.stop-during-backup=true"
162156 command : >
163157 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
164158 && printf 'AuthType Digest\\nAuthName \"phpmyadmin\"\\nAuthDigestProvider file\\nAuthUserFile ${PMA_CONF_FOLDER}/.htpasswd\\nRequire valid-user\\n' > ${WEBSERVER_DOC_ROOT}/.htaccess && a2enmod auth_digest;
@@ -173,6 +167,7 @@ services:
173167 - backend
174168 volumes :
175169 - ' db:/var/lib/mysql'
170+ - ' db-backup-data:/tmp/backup'
176171 - type : bind
177172 source : ./database/conf.d/z-mysql.cnf
178173 target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
@@ -190,6 +185,8 @@ services:
190185 TZ : ' ${LOCAL_TIMEZONE}'
191186 labels :
192187 - " docker-volume-backup.stop-during-backup=true"
188+ - " docker-volume-backup.archive-pre=/bin/sh -c 'mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > /tmp/backup/db_backup_data.sql'"
189+ - " docker-volume-backup.exec-label=database"
193190 command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
194191
195192 redis :
@@ -211,29 +208,29 @@ services:
211208 environment :
212209 ALLOW_EMPTY_PASSWORD : ' yes'
213210 TZ : ' ${LOCAL_TIMEZONE}'
214- labels :
215- - " docker-volume-backup.stop-during-backup=true"
216211 command : " redis-server ${REDIS_CONF_PREFIX}/redis/redis.conf"
217212
218213 backup :
219- image : ' futurice /docker-volume-backup'
214+ image : offen /docker-volume-backup:latest
220215 container_name : backup
221216 networks :
222217 - backend
223218 volumes :
224- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
225219 - ' html:/backup/html:ro'
226220 - ' db:/backup/db:ro'
221+ - ' db-backup-data:/backup/db-backup-data:ro'
222+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
227223 - type : bind
228224 source : ./backups
229225 target : /archive
230226 hostname : backup
231227 restart : unless-stopped
232228 environment :
233- BACKUP_WAIT_SECONDS : 120
234229 BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
235230 BACKUP_FILENAME : ' backup-%Y-%m-%dT%H-%M-%S.tar.gz'
236- TZ : ' ${LOCAL_TIMEZONE}'
231+ BACKUP_RETENTION_DAYS : ' 7'
232+ EXEC_LABEL : ' database'
233+ # BACKUP_EXCLUDE_REGEXP: 'folder|folder|file|\\.log$$'
237234
238235networks :
239236 backend : null
@@ -256,6 +253,8 @@ volumes:
256253 o : bind
257254 db :
258255 name : ${DATABASE_CONT_NAME}-data
256+ db-backup-data :
257+ name : ${DATABASE_CONT_NAME}-backup-data
259258 dtredis :
260259 name : redis-data
261260 certbot-etc :
0 commit comments