@@ -97,6 +97,7 @@ services:
9797 - backend
9898 - frontend
9999 volumes :
100+ - ' phpmyadmin:${WEBSERVER_DOC_ROOT}/sql'
100101 - type : bind
101102 source : ./phpmyadmin/apache2/sites-available/default-ssl.conf
102103 target : ' ${APACHE_CONFDIR_PREFIX}/sites-available/default-ssl.conf'
@@ -117,10 +118,10 @@ services:
117118 restart : unless-stopped
118119 ports :
119120 - ' 9090:443'
120- # links:
121- # - database
121+ links :
122+ - database
122123 environment :
123- # PMA_HOST: database
124+ PMA_HOST : ' database'
124125 PMA_PMADB : ' phpmyadmin'
125126 PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
126127 PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
@@ -129,7 +130,7 @@ services:
129130 MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
130131 TZ : ' ${LOCAL_TIMEZONE}'
131132 command : >
132- 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
133+ 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
133134 && printf 'AuthType Digest\\nAuthName \"phpmyadmin\"\\nAuthDigestProvider file\\nAuthUserFile ${PMA_CONF_FOLDER}/.htpasswd\\nRequire valid-user\\n' > ${WEBSERVER_DOC_ROOT}/.htaccess && a2enmod auth_digest;
134135 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;
135136 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;
@@ -142,9 +143,11 @@ services:
142143 - backend
143144 volumes :
144145 - ' db:/var/lib/mysql'
146+ - ' db-backup-data:/tmp/backup'
145147 - type : bind
146148 source : ./database/conf.d/z-mysql.cnf
147149 target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
150+ - ' phpmyadmin:/docker-entrypoint-initdb.d'
148151 hostname : database
149152 restart : unless-stopped
150153 ports :
@@ -159,6 +162,8 @@ services:
159162 TZ : ' ${LOCAL_TIMEZONE}'
160163 labels :
161164 - " docker-volume-backup.stop-during-backup=true"
165+ - " docker-volume-backup.archive-pre=/bin/sh -c 'mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > /tmp/backup/db_backup_data.sql'"
166+ - " docker-volume-backup.exec-label=database"
162167 command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
163168
164169 redis :
@@ -183,24 +188,26 @@ services:
183188 command : " redis-server ${REDIS_CONF_PREFIX}/redis/redis.conf"
184189
185190 backup :
186- image : ' futurice /docker-volume-backup'
191+ image : offen /docker-volume-backup:latest
187192 container_name : backup
188193 networks :
189194 - backend
190195 volumes :
191- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
192196 - ' html:/backup/html:ro'
193197 - ' db:/backup/db:ro'
198+ - ' db-backup-data:/backup/db-backup-data:ro'
199+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
194200 - type : bind
195201 source : ./backups
196202 target : /archive
197203 hostname : backup
198204 restart : unless-stopped
199205 environment :
200- BACKUP_WAIT_SECONDS : 120
201206 BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
202207 BACKUP_FILENAME : ' backup-%Y-%m-%dT%H-%M-%S.tar.gz'
203- TZ : ' ${LOCAL_TIMEZONE}'
208+ BACKUP_RETENTION_DAYS : ' 7'
209+ EXEC_LABEL : ' database'
210+ # BACKUP_EXCLUDE_REGEXP: 'folder|folder|file|\\.log$$'
204211
205212networks :
206213 backend : null
@@ -216,6 +223,15 @@ volumes:
216223 o : bind
217224 db :
218225 name : ${DATABASE_CONT_NAME}-data
226+ db-backup-data :
227+ name : ${DATABASE_CONT_NAME}-backup-data
228+ phpmyadmin :
229+ name : phpmyadmin-sql
230+ driver : local
231+ driver_opts :
232+ type : none
233+ device : ${DIRECTORY_PATH}/phpmyadmin/sql
234+ o : bind
219235 dtredis :
220236 name : redis-data
221237 certbot-etc :
0 commit comments