@@ -121,6 +121,7 @@ services:
121121 - backend
122122 - frontend
123123 volumes :
124+ - ' phpmyadmin:${WEBSERVER_DOC_ROOT}/sql'
124125 - type : bind
125126 source : ./phpmyadmin/apache2/sites-available/default-ssl.conf
126127 target : ' ${APACHE_CONFDIR_PREFIX}/sites-available/default-ssl.conf'
@@ -141,10 +142,10 @@ services:
141142 restart : unless-stopped
142143 ports :
143144 - ' 9090:443'
144- # links:
145- # - database
145+ links :
146+ - database
146147 environment :
147- # PMA_HOST: database
148+ PMA_HOST : ' database'
148149 PMA_PMADB : ' phpmyadmin'
149150 PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
150151 PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
@@ -153,7 +154,7 @@ services:
153154 MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
154155 TZ : ' ${LOCAL_TIMEZONE}'
155156 command : >
156- 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
157+ 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
157158 && printf 'AuthType Digest\\nAuthName \"phpmyadmin\"\\nAuthDigestProvider file\\nAuthUserFile ${PMA_CONF_FOLDER}/.htpasswd\\nRequire valid-user\\n' > ${WEBSERVER_DOC_ROOT}/.htaccess && a2enmod auth_digest;
158159 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;
159160 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;
@@ -166,9 +167,11 @@ services:
166167 - backend
167168 volumes :
168169 - ' db:/var/lib/mysql'
170+ - ' db-backup-data:/tmp/backup'
169171 - type : bind
170172 source : ./database/conf.d/z-mysql.cnf
171173 target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
174+ - ' phpmyadmin:/docker-entrypoint-initdb.d'
172175 hostname : database
173176 restart : unless-stopped
174177 ports :
@@ -183,6 +186,8 @@ services:
183186 TZ : ' ${LOCAL_TIMEZONE}'
184187 labels :
185188 - " docker-volume-backup.stop-during-backup=true"
189+ - " docker-volume-backup.archive-pre=/bin/sh -c 'mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > /tmp/backup/db_backup_data.sql'"
190+ - " docker-volume-backup.exec-label=database"
186191 command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
187192
188193 redis :
@@ -227,24 +232,26 @@ services:
227232 command : " -a http=:8080,HTTP -p default_ttl=3600"
228233
229234 backup :
230- image : ' futurice /docker-volume-backup'
235+ image : offen /docker-volume-backup:latest
231236 container_name : backup
232237 networks :
233238 - backend
234239 volumes :
235- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
236240 - ' html:/backup/html:ro'
237241 - ' db:/backup/db:ro'
242+ - ' db-backup-data:/backup/db-backup-data:ro'
243+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
238244 - type : bind
239245 source : ./backups
240246 target : /archive
241247 hostname : backup
242248 restart : unless-stopped
243249 environment :
244- BACKUP_WAIT_SECONDS : 120
245250 BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
246251 BACKUP_FILENAME : ' backup-%Y-%m-%dT%H-%M-%S.tar.gz'
247- TZ : ' ${LOCAL_TIMEZONE}'
252+ BACKUP_RETENTION_DAYS : ' 7'
253+ EXEC_LABEL : ' database'
254+ # BACKUP_EXCLUDE_REGEXP: 'folder|folder|file|\\.log$$'
248255
249256networks :
250257 backend : null
@@ -260,6 +267,15 @@ volumes:
260267 o : bind
261268 db :
262269 name : ${DATABASE_CONT_NAME}-data
270+ db-backup-data :
271+ name : ${DATABASE_CONT_NAME}-backup-data
272+ phpmyadmin :
273+ name : phpmyadmin-sql
274+ driver : local
275+ driver_opts :
276+ type : none
277+ device : ${DIRECTORY_PATH}/phpmyadmin/sql
278+ o : bind
263279 dtredis :
264280 name : redis-data
265281 certbot-etc :
0 commit comments