diff --git a/docker/docker-compose-x86.yaml b/docker/docker-compose-x86.yaml index e69de29..106a811 100644 --- a/docker/docker-compose-x86.yaml +++ b/docker/docker-compose-x86.yaml @@ -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: \ No newline at end of file