@@ -103,6 +103,7 @@ services:
103103 - backend
104104 - frontend
105105 volumes :
106+ - ' phpmyadmin:${WEBSERVER_DOC_ROOT}/sql'
106107 - type : bind
107108 source : ./phpmyadmin/apache2/sites-available/default-ssl.conf
108109 target : ' ${APACHE_CONFDIR_PREFIX}/sites-available/default-ssl.conf'
@@ -123,10 +124,10 @@ services:
123124 restart : unless-stopped
124125 ports :
125126 - ' 9090:443'
126- # links:
127- # - database
127+ links :
128+ - database
128129 environment :
129- # PMA_HOST: database
130+ PMA_HOST : ' database'
130131 PMA_PMADB : ' phpmyadmin'
131132 PMA_CONTROLUSER : ' ${PMA_CONTROLUSER}'
132133 PMA_CONTROLPASS : ' ${PMA_CONTROLPASS}'
@@ -135,11 +136,11 @@ services:
135136 MEMORY_LIMIT : ' ${PMA_MEMORY_LIMIT}'
136137 TZ : ' ${LOCAL_TIMEZONE}'
137138 command : >
138- 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
139+ 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
139140 && printf 'AuthType Digest\\nAuthName \"phpmyadmin\"\\nAuthDigestProvider file\\nAuthUserFile ${PMA_CONF_FOLDER}/.htpasswd\\nRequire valid-user\\n' > ${WEBSERVER_DOC_ROOT}/.htaccess && a2enmod auth_digest;
140141 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;
141142 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- a2dissite 000-default && a2enmod ssl && a2ensite default-ssl && /docker-entrypoint.sh 'apache2-foreground'"
143+ a2enmod ssl && a2ensite default- ssl && a2dissite 000-default && /docker-entrypoint.sh 'apache2-foreground'"
143144
144145 database :
145146 image : ' ${DATABASE_IMAGE_NAME}:${DATABASE_VERSION}'
@@ -148,9 +149,11 @@ services:
148149 - backend
149150 volumes :
150151 - ' db:/var/lib/mysql'
152+ - ' db-backup-data:/tmp/backup'
151153 - type : bind
152154 source : ./database/conf.d/z-mysql.cnf
153155 target : ' ${MYSQL_CONF_PREFIX}/z-mysql.cnf'
156+ - ' phpmyadmin:/docker-entrypoint-initdb.d'
154157 hostname : database
155158 restart : unless-stopped
156159 ports :
@@ -165,6 +168,8 @@ services:
165168 TZ : ' ${LOCAL_TIMEZONE}'
166169 labels :
167170 - " docker-volume-backup.stop-during-backup=true"
171+ - " docker-volume-backup.archive-pre=/bin/sh -c 'mysqldump -uroot -p${MYSQL_ROOT_PASSWORD} --all-databases > /tmp/backup/db_backup_data.sql'"
172+ - " docker-volume-backup.exec-label=database"
168173 command : " --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-authentication-plugin=mysql_native_password"
169174
170175 redis :
@@ -189,24 +194,26 @@ services:
189194 command : " redis-server ${REDIS_CONF_PREFIX}/redis/redis.conf"
190195
191196 backup :
192- image : ' futurice /docker-volume-backup'
197+ image : offen /docker-volume-backup:latest
193198 container_name : backup
194199 networks :
195200 - backend
196201 volumes :
197- - ' /var/run/docker.sock:/var/run/docker.sock:ro'
198202 - ' html:/backup/html:ro'
199203 - ' db:/backup/db:ro'
204+ - ' db-backup-data:/backup/db-backup-data:ro'
205+ - ' /var/run/docker.sock:/var/run/docker.sock:ro'
200206 - type : bind
201207 source : ./backups
202208 target : /archive
203209 hostname : backup
204210 restart : unless-stopped
205211 environment :
206- BACKUP_WAIT_SECONDS : 120
207212 BACKUP_CRON_EXPRESSION : ' 20 01 * * *'
208213 BACKUP_FILENAME : ' backup-%Y-%m-%dT%H-%M-%S.tar.gz'
209- TZ : ' ${LOCAL_TIMEZONE}'
214+ BACKUP_RETENTION_DAYS : ' 7'
215+ EXEC_LABEL : ' database'
216+ # BACKUP_EXCLUDE_REGEXP: 'folder|folder|file|\\.log$$'
210217
211218networks :
212219 backend : null
@@ -222,6 +229,15 @@ volumes:
222229 o : bind
223230 db :
224231 name : ${DATABASE_CONT_NAME}-data
232+ db-backup-data :
233+ name : ${DATABASE_CONT_NAME}-backup-data
234+ phpmyadmin :
235+ name : phpmyadmin-sql
236+ driver : local
237+ driver_opts :
238+ type : none
239+ device : ${DIRECTORY_PATH}/phpmyadmin/sql
240+ o : bind
225241 dtredis :
226242 name : redis-data
227243 certbot-etc :
0 commit comments