added production docker compose

This commit is contained in:
2022-09-06 14:01:58 +01:00
parent 057b3747fb
commit 811b0a11f5

View File

@@ -0,0 +1,74 @@
version: '3.0'
services:
app:
image: mediawiki:1.37.1
container_name: limbowiki_app
links:
- db
ports:
- ${APP_PORT}:80
volumes:
- app_data:/mediawiki_data
command: >
sh -c "
chown -R www-data:www-data /mediawiki_data;
rm /var/www/html/LocalSettings.php;
rm /var/www/html/includes/PlatformSettings.php;
rm -r /var/www/html/images;
ln -s /mediawiki_data/config/LocalSettings.php /var/www/html/LocalSettings.php;
ln -s /mediawiki_data/config/PlatformSettings.php /var/www/html/includes/PlatformSettings.php;
ln -s /mediawiki_data/images /var/www/html/images;
apache2-foreground;"
restart: unless-stopped
db:
image: mariadb:10.6.2
container_name: limbowiki_db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
volumes:
- db_data:/var/lib/mysql
manager:
container_name: limbowiki_manager
image: alpine
restart: unless-stopped
links:
- db
tty: true
volumes:
- backups:/backups:ro
- app_data:/mediawiki_data:ro
- db_data:/db:ro
environment:
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_HOST=${MYSQL_HOST}
- BACKUP_USERNAME=${BACKUP_USERNAME}
- BACKUP_PASSWORD=${BACKUP_PASSWORD}
- BACKUP_ADDRESS=${BACKUP_ADDRESS}
- BACKUP_DESTINATION_FOLDER=${BACKUP_DESTINATION_FOLDER}
command: >
sh -c "
apk add --no-cache mysql-client;
apk add --no-cache lftp;
echo \"#!/bin/sh\" > /etc/periodic/daily/backup;
echo \"DATAFILE=/tmp/LimboWiki_www_\$$(date +%Y%m%d%H%M%S).sql.gz \" >> /etc/periodic/daily/backup;
echo \"tar -zcvf $$DATAFILE /mediawiki_data \" >> /etc/periodic/daily/backup;
echo \"lftp -e \x22 put -O ${BACKUP_DESTINATION_FOLDER} \$$DATAFILE \x22 -u \$${BACKUP_USERNAME},\$${BACKUP_PASSWORD} \$${BACKUP_ADDRESS} \" >> /etc/periodic/daily/backup;
echo \"rm $$DATAFILE\" >> /etc/periodic/daily/backup;
echo \"SQLDMPFILE=/tmp/limboWiki_mariadb_\$$(date +%Y%m%d%H%M%S).sql.gz \" >> /etc/periodic/daily/backup;
echo \"mysqldump --no-tablespaces -h \"\$${MYSQL_HOST}\" --databases \"\$${MYSQL_DATABASE}\" -u \"\$${MYSQL_USER}\" -p\"\$${MYSQL_PASSWORD}\" | gzip > \$$SQLDMPFILE \" >> /etc/periodic/daily/backup;
echo \"lftp -e \x22 put -O ${BACKUP_DESTINATION_FOLDER} \$$SQLDMPFILE \x22 -u \$${BACKUP_USERNAME},\$${BACKUP_PASSWORD} \$${BACKUP_ADDRESS} \" >> /etc/periodic/daily/backup;
echo \"rm $$SQLDMPFILE\" >> /etc/periodic/daily/backup;
chmod +x /etc/periodic/daily/backup;
crond -f -l 8;"
volumes:
backups:
driver: ${VOLUME_BACKUPS_DRIVER}
driver_opts:
type: ${VOLUME_BACKUPS_DRIVER_OPTS_TYPE}
o: ${VOLUME_BACKUPS_DRIVER_OPTS_O}
device: ${VOLUME_BACKUPS_DRIVER_OPTS_DEVICE}
db_data:
app_data: