@@ -36,7 +36,7 @@ services:
36
36
labels :
37
37
- ' docker-volume-backup.stop-during-backup=true'
38
38
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
40
40
&& 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
41
41
&& 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;
42
42
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:
61
61
- cakephp
62
62
environment :
63
63
TZ : ' ${LOCAL_TIMEZONE}'
64
- labels :
65
- - " docker-volume-backup.stop-during-backup=true"
66
64
67
65
certbot :
68
66
depends_on :
@@ -112,9 +110,7 @@ services:
112
110
environment :
113
111
NGINX_HOST : ${DOMAIN_NAME}
114
112
NGINX_PORT : 80
115
- TZ : ' ${LOCAL_TIMEZONE}'
116
- labels :
117
- - " docker-volume-backup.stop-during-backup=true"
113
+ TZ : ' ${LOCAL_TIMEZONE}'
118
114
command : bash -c "/docker-entrypoint.sh nginx -v; sh /tmp/ssl-proxyconf.sh '${DOMAIN_NAME}' '${LETSENCRYPT_CONF_PREFIX}' '${PROXY_PREFIX}'"
119
115
120
116
phpmyadmin :
@@ -150,15 +146,13 @@ services:
150
146
# - database
151
147
environment :
152
148
# PMA_HOST: database
153
- PMA_PMADB : phpmyadmin
149
+ PMA_PMADB : ' phpmyadmin'
154
150
PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
155
151
PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
156
152
MYSQL_ROOT_PASSWORD : ' ${MYSQL_ROOT_PASSWORD}'
157
153
UPLOAD_LIMIT : ' ${PMA_UPLOAD_LIMIT}'
158
154
MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
159
155
TZ : ' ${LOCAL_TIMEZONE}'
160
- labels :
161
- - " docker-volume-backup.stop-during-backup=true"
162
156
command : >
163
157
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
164
158
&& 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:
173
167
- backend
174
168
volumes :
175
169
- ' db:/var/lib/mysql'
170
+ - ' db-backup-data:/tmp/backup'
176
171
- type : bind
177
172
source : ./database/conf.d/z-mysql.cnf
178
173
target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
@@ -190,6 +185,8 @@ services:
190
185
TZ : ' ${LOCAL_TIMEZONE}'
191
186
labels :
192
187
- " 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"
193
190
command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
194
191
195
192
redis :
@@ -211,29 +208,29 @@ services:
211
208
environment :
212
209
ALLOW_EMPTY_PASSWORD : ' yes'
213
210
TZ : ' ${LOCAL_TIMEZONE}'
214
- labels :
215
- - " docker-volume-backup.stop-during-backup=true"
216
211
command : " redis-server ${REDIS_CONF_PREFIX}/redis/redis.conf"
217
212
218
213
backup :
219
- image : ' futurice /docker-volume-backup'
214
+ image : offen /docker-volume-backup:latest
220
215
container_name : backup
221
216
networks :
222
217
- backend
223
218
volumes :
224
- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
225
219
- ' html:/backup/html:ro'
226
220
- ' db:/backup/db:ro'
221
+ - ' db-backup-data:/backup/db-backup-data:ro'
222
+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
227
223
- type : bind
228
224
source : ./backups
229
225
target : /archive
230
226
hostname : backup
231
227
restart : unless-stopped
232
228
environment :
233
- BACKUP_WAIT_SECONDS : 120
234
229
BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
235
230
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$$'
237
234
238
235
networks :
239
236
backend : null
@@ -256,6 +253,8 @@ volumes:
256
253
o : bind
257
254
db :
258
255
name : ${DATABASE_CONT_NAME}-data
256
+ db-backup-data :
257
+ name : ${DATABASE_CONT_NAME}-backup-data
259
258
dtredis :
260
259
name : redis-data
261
260
certbot-etc :
0 commit comments