@@ -119,6 +119,7 @@ services:
119119 - backend
120120 - frontend
121121 volumes :
122+ - ' phpmyadmin:${WEBSERVER_DOC_ROOT}/sql'
122123 - type : bind
123124 source : ./phpmyadmin/apache2/sites-available/default-ssl.conf
124125 target : ' ${APACHE_CONFDIR_PREFIX}/sites-available/default-ssl.conf'
@@ -140,10 +141,10 @@ services:
140141 restart : unless-stopped
141142 ports :
142143 - ' 9090:443'
143- # links:
144- # - database
144+ links :
145+ - database
145146 environment :
146- # PMA_HOST: database
147+ PMA_HOST : ' database'
147148 PMA_PMADB : ' phpmyadmin'
148149 PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
149150 PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
@@ -152,7 +153,7 @@ services:
152153 MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
153154 TZ : ' ${LOCAL_TIMEZONE}'
154155 command : >
155- 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
156+ 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
156157 && printf 'AuthType Digest\\nAuthName \"phpmyadmin\"\\nAuthDigestProvider file\\nAuthUserFile ${PMA_CONF_FOLDER}/.htpasswd\\nRequire valid-user\\n' > ${WEBSERVER_DOC_ROOT}/.htaccess && a2enmod auth_digest;
157158 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;
158159 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;
@@ -165,9 +166,11 @@ services:
165166 - backend
166167 volumes :
167168 - ' db:/var/lib/mysql'
169+ - ' db-backup-data:/tmp/backup'
168170 - type : bind
169171 source : ./database/conf.d/z-mysql.cnf
170172 target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
173+ - ' phpmyadmin:/docker-entrypoint-initdb.d'
171174 hostname : database
172175 restart : unless-stopped
173176 ports :
@@ -182,6 +185,8 @@ services:
182185 TZ : ' ${LOCAL_TIMEZONE}'
183186 labels :
184187 - " 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"
185190 command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
186191
187192 redis :
@@ -224,6 +229,7 @@ services:
224229 VARNISH_SIZE : ' ${VARNISH_SIZE}'
225230 TZ : ' ${LOCAL_TIMEZONE}'
226231 command : " -a http=:8080,HTTP -p default_ttl=3600"
232+
227233 mail :
228234 image : ' mailhog/mailhog'
229235 container_name : mail
@@ -240,24 +246,26 @@ services:
240246 entrypoint : sh -c "echo ${PMA_HTPASSWD_USERNAME}:$(MailHog bcrypt ${PMA_HTPASSWD_PASSWORD}) > ${DOMAIN_NAME}-auth && MailHog"
241247
242248 backup :
243- image : ' futurice /docker-volume-backup'
249+ image : offen /docker-volume-backup:latest
244250 container_name : backup
245251 networks :
246252 - backend
247253 volumes :
248- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
249254 - ' html:/backup/html:ro'
250255 - ' db:/backup/db:ro'
256+ - ' db-backup-data:/backup/db-backup-data:ro'
257+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
251258 - type : bind
252259 source : ./backups
253260 target : /archive
254261 hostname : backup
255262 restart : unless-stopped
256263 environment :
257- BACKUP_WAIT_SECONDS : 120
258264 BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
259265 BACKUP_FILENAME : ' backup-%Y-%m-%dT%H-%M-%S.tar.gz'
260- TZ : ' ${LOCAL_TIMEZONE}'
266+ BACKUP_RETENTION_DAYS : ' 7'
267+ EXEC_LABEL : ' database'
268+ # BACKUP_EXCLUDE_REGEXP: 'folder|folder|file|\\.log$$'
261269
262270networks :
263271 backend : null
@@ -273,6 +281,15 @@ volumes:
273281 o : bind
274282 db :
275283 name : ${DATABASE_CONT_NAME}-data
284+ db-backup-data :
285+ name : ${DATABASE_CONT_NAME}-backup-data
286+ phpmyadmin :
287+ name : phpmyadmin-sql
288+ driver : local
289+ driver_opts :
290+ type : none
291+ device : ${DIRECTORY_PATH}/phpmyadmin/sql
292+ o : bind
276293 dtredis :
277294 name : redis-data
278295 certbot-etc :
0 commit comments