# Services services: # MySQL 5.7.22 database mysql: image: mysql:5.7.22 env_file: - ./.env - ./.env.docker networks: - app volumes: - ./docker/mysql:/var/lib/mysql - ./docker/templates/my.cnf:/etc/mysql/my.cnf ports: - ${MYSQL_VPORT}:3306 ulimits: nofile: soft: 262144 hard: 262144 restart: unless-stopped # # phpMyAdmin # phpmyadmin: # image: phpmyadmin/phpmyadmin # env_file: # - ./.env # - ./.env.docker # ports: # - ${PMA_VPORT}:80 # environment: # - VIRTUAL_HOST=pma.${VHOST} # - PMA_HOST=${MYSQL_HOST} # labels: # - 'traefik.enable=true' # - 'traefik.http.routers.pmatradineur.rule=Host(`pma.${VHOST}`)' # - 'traefik.http.routers.pmatradineur.service=pmatradineur-service' # - 'traefik.http.routers.pmatradineur.entrypoints=websecure' # - 'traefik.http.routers.pmatradineur.tls=true' # # - 'traefik.http.routers.pmatradineur.tls.certresolver=letsencryptresolver' # - 'traefik.http.services.pmatradineur-service.loadbalancer.server.port=80' # networks: # - app # - default # depends_on: # - mysql # phpMyAdmin adminer: image: adminer env_file: - ./.env - ./.env.docker ports: - ${PMA_VPORT}:8080 environment: - VIRTUAL_HOST=pma.${VHOST} - PMA_HOST=${MYSQL_HOST} labels: - 'traefik.enable=true' - 'traefik.http.routers.pmapaneln8n.rule=Host(`pma.${VHOST}`)' - 'traefik.http.routers.pmapaneln8n.service=pmapaneln8n-service' - 'traefik.http.routers.pmapaneln8n.entrypoints=websecure' - 'traefik.http.routers.pmapaneln8n.tls=true' - 'traefik.http.services.pmapaneln8n-service.loadbalancer.server.port=8080' networks: - app - default depends_on: - mysql # Backup backup: image: mysql:5.7.22 env_file: - ./.env - ./.env.docker depends_on: - mysql command: > /bin/sh -c " echo '[client]' > /root/.my.cnf ; echo 'user=root' >> /root/.my.cnf ; echo 'password=${MYSQL_ROOT_PASSWORD}' >> /root/.my.cnf ; echo 'host=${MYSQL_HOST}' >> /root/.my.cnf ; mysqldump --defaults-extra-file=/root/.my.cnf $$MYSQL_DATABASE | gzip > /backup/$$MYSQL_DATABASE-$$(date '+%Y-%m-%d').sql.gz ; cp /backup/$$MYSQL_DATABASE-$$(date '+%Y-%m-%d').sql.gz /backup/latest.sql.gz " networks: - app volumes: - ./docker/backup:/backup # Restore restore: image: mysql:5.7.22 env_file: - ./.env - ./.env.docker depends_on: - mysql command: > /bin/sh -c " exec gunzip < /backup/latest.sql.gz | mysql -u $$MYSQL_USER --password=$$MYSQL_ROOT_PASSWORD -h $$DB_HOST $$MYSQL_DATABASE " networks: - app volumes: - ./docker/backup:/backup # Docker Networks networks: default: name: nginx-proxy external: true app: driver: bridge