This commit is contained in:
Lorenzo Carbonell 2024-05-02 09:07:49 +02:00
parent 172727bd0d
commit f5bc834350
No known key found for this signature in database
GPG Key ID: B5E8FC9484B82CA9
2 changed files with 54 additions and 44 deletions

View File

@ -1,12 +1,17 @@
services: services:
wordpress: wordpress:
image: wordpress:fpm-alpine image: wordpress:fpm-alpine
container_name: ${CONTAINER_NAME} container_name: ${ROUTER}-wordpress
restart: always restart: unless-stopped
init: true init: true
depends_on: depends_on:
- mariadb - mariadb
- redis - redis
volumes:
- wordpress:/var/www/html
- ./wp-content:/var/www/html/wp-content
networks:
- internal
environment: environment:
WORDPRESS_DB_HOST: ${WORDPRESS_DB_HOST} WORDPRESS_DB_HOST: ${WORDPRESS_DB_HOST}
WORDPRESS_DB_USER: ${WORDPRESS_DB_USER} WORDPRESS_DB_USER: ${WORDPRESS_DB_USER}
@ -14,68 +19,65 @@ services:
WORDPRESS_DB_NAME: ${WORDPRESS_DB_NAME} WORDPRESS_DB_NAME: ${WORDPRESS_DB_NAME}
WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX} WORDPRESS_TABLE_PREFIX: ${WORDPRESS_TABLE_PREFIX}
WORDPRESS_CONFIG_EXTRA: | WORDPRESS_CONFIG_EXTRA: |
// adjust Redis host and port if necessary
define( 'WP_REDIS_HOST', '${WP_REDIS_HOST}' ); define( 'WP_REDIS_HOST', '${WP_REDIS_HOST}' );
define( 'WP_REDIS_PORT', ${WP_REDIS_PORT} ); define( 'WP_REDIS_PORT', ${WP_REDIS_PORT} );
// change the prefix and database for each site to avoid cache data collisions
define( 'WP_REDIS_PREFIX', '${FQDN}' ); define( 'WP_REDIS_PREFIX', '${FQDN}' );
define( 'WP_REDIS_DATABASE', ${WP_REDIS_DATABASE} ); // 0-15 define( 'WP_REDIS_DATABASE', ${WP_REDIS_DATABASE} ); // 0-15
// reasonable connection and read+write timeouts
define( 'WP_REDIS_TIMEOUT', ${WP_REDIS_TIMEOUT} ); define( 'WP_REDIS_TIMEOUT', ${WP_REDIS_TIMEOUT} );
define( 'WP_REDIS_READ_TIMEOUT', ${WP_REDIS_READ_TIMEOUT} ); define( 'WP_REDIS_READ_TIMEOUT', ${WP_REDIS_READ_TIMEOUT} );
volumes:
- wordpress:/var/www/html
networks:
- internal
nginx: nginx:
image: nginx:alpine image: nginx:alpine
volumes: container_name: ${ROUTER}-nginx
- ./nginx:/etc/nginx/conf.d restart: unless-stopped
- wordpress:/var/www/html init: true
depends_on: depends_on:
- wordpress - wordpress
restart: unless-stopped volumes:
- ./nginx:/etc/nginx/conf.d
- wordpress:/var/www/html:ro
networks: networks:
- proxy - proxy
- internal - internal
labels: labels:
traefik.enable: true traefik.enable: true
traefik.http.services.segobriga.loadbalancer.server.port: 80 traefik.http.services.${ROUTER}-nginx.loadbalancer.server.port: 80
traefik.http.routers.segobriga.rule: Host(`${FQDN}`) traefik.http.routers.${ROUTER}-nginx.rule: Host(`${FQDN}`)
traefik.http.routers.segobriga.entrypoints: websecure
mariadb: mariadb:
image: mariadb image: mariadb
restart: always container_name: ${ROUTER}-mariadb
restart: unless-stopped
init: true init: true
volumes:
- mariadb:/var/lib/mysql
networks:
- internal
environment: environment:
MYSQL_DATABASE: ${WORDPRESS_DB_NAME} MYSQL_DATABASE: ${WORDPRESS_DB_NAME}
MYSQL_USER: ${WORDPRESS_DB_USER} MYSQL_USER: ${WORDPRESS_DB_USER}
MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD} MYSQL_PASSWORD: ${WORDPRESS_DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD} MYSQL_ROOT_PASSWORD: ${WORDPRESS_DB_PASSWORD}
volumes:
- db:/var/lib/mysql
networks:
- internal
backup: backup:
image: atareao/mariadb-backup:latest image: atareao/mariadb-backup:latest
init: true container_name: ${ROUTER}-backup
restart: unless-stopped restart: unless-stopped
networks: init: true
- internal depends_on:
- mariadb
volumes: volumes:
- ./hooks:/hooks - ./hooks:/hooks
- ./backup:/backup - backup:/cronitab/backup
networks:
- internal
environment: environment:
MARIADB_DB: ${WORDPRESS_DB_NAME} MARIADB_DB: ${WORDPRESS_DB_NAME}
MARIADB_HOST: ${WORDPRESS_DB_HOST} MARIADB_HOST: ${WORDPRESS_DB_HOST}
MARIADB_PORT: 3306 MARIADB_PORT: 3306
MARIADB_USER: ${WORDPRESS_DB_USER} MARIADB_USER: ${WORDPRESS_DB_USER}
MARIADB_PASSWORD: ${WORDPRESS_DB_PASSWORD} MARIADB_PASSWORD: ${WORDPRESS_DB_PASSWORD}
SCHEDULE: "* * 1/24 * * * *" SCHEDULE: "0 1/24 * * *"
BACKUP_KEEP_MINS: ${BACKUP_KEEP_MINS} BACKUP_KEEP_MINS: ${BACKUP_KEEP_MINS}
BACKUP_KEEP_DAYS: ${BACKUP_KEEP_DAYS} BACKUP_KEEP_DAYS: ${BACKUP_KEEP_DAYS}
BACKUP_KEEP_WEEKS: ${BACKUP_KEEP_WEEKS} BACKUP_KEEP_WEEKS: ${BACKUP_KEEP_WEEKS}
@ -83,6 +85,7 @@ services:
redis: redis:
image: redis:6 image: redis:6
container_name: ${ROUTER}-redis
restart: unless-stopped restart: unless-stopped
init: true init: true
depends_on: depends_on:
@ -94,29 +97,37 @@ services:
phpmyadmin: phpmyadmin:
image: phpmyadmin image: phpmyadmin
init: true container_name: ${ROUTER}-phpmyadmin
environment:
- PMA_ARBITRARY=1
restart: unless-stopped restart: unless-stopped
init: true
depends_on:
- mariadb
volumes: volumes:
- sessions:/sessions - phpmyadmin:/sessions
networks: networks:
- proxy - proxy
- internal - internal
environment:
- PMA_ARBITRARY=1
labels: labels:
- "traefik.enable=true" traefik.enable: true
- "traefik.http.services.${ROUTER}-myadmin.loadbalancer.server.port=80" traefik.http.services.${ROUTER}-phpmyadmin.loadbalancer.server.port: 80
- "traefik.http.routers.${ROUTER}-myadmin-https.rule=Host(`${FQDN2}`)" traefik.http.routers.${ROUTER}-phpmyadmin.rule: Host(`${FQDN2}`)
volumes: volumes:
wordpress: {} wordpress:
db: {} name: ${ROUTER}-wordpress
redis: {} mariadb:
sessions: {} name: ${ROUTER}-mariadb
config: backup:
external: true name: ${ROUTER}-backup
redis:
name: ${ROUTER}-redis
phpmyadmin:
name: ${ROUTER}-phpmyadmin
networks: networks:
internal: {} internal:
name: ${ROUTER}-internal
proxy: proxy:
external: true external: true

View File

@ -1,12 +1,11 @@
CONTAINER_NAME=ejemplo CONTAINER_NAME=ejemplo
WORDPRESS_DB_HOST=mariadb WORDPRESS_DB_HOST=mariadb
WORDPRESS_DB_CHARSET=utf8
WORDPRESS_DB_USER=usuario WORDPRESS_DB_USER=usuario
WORDPRESS_DB_PASSWORD=contraseña WORDPRESS_DB_PASSWORD=contraseña
WORDPRESS_DB_NAME=basededatos WORDPRESS_DB_NAME=basededatos
WORDPRESS_DB_CHARSET=utf8 WORDPRESS_DB_CHARSET=utf8
WORDPRESS_DB_COLLATE='' WORDPRESS_DB_COLLATE=''
WORDPRESS_TABLE_PREFIX=adfa3_ WORDPRESS_TABLE_PREFIX=wp_
WORDPRESS_AUTH_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX WORDPRESS_AUTH_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
WORDPRESS_SECURE_AUTH_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX WORDPRESS_SECURE_AUTH_KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
@ -26,7 +25,7 @@ WP_REDIS_READ_TIMEOUT=1
FQDN=tusitio.es FQDN=tusitio.es
FQDN2=myadmin.tusitio.es FQDN2=myadmin.tusitio.es
ROUTER=wordpress ROUTER=tusitio
BACKUP_KEEP_MINS=1440 BACKUP_KEEP_MINS=1440
BACKUP_KEEP_DAYS=7 BACKUP_KEEP_DAYS=7
BACKUP_KEEP_WEEKS=4 BACKUP_KEEP_WEEKS=4