services: service: image: ghost:5-alpine ports: - 2368:2368 # Ghost environment: database__client: mysql database__connection__host: ghost-mysql-1 database__connection__user: ghost database__connection__password: ghost database__connection__database: ghost url: https://blog.rskio.com depends_on: mysql: condition: service_healthy redis: condition: service_healthy mysql: image: mysql:8.0.35 command: --innodb-buffer-pool-size=1G --innodb-log-buffer-size=500M --innodb-change-buffer-max-size=50 --innodb-flush-log-at-trx_commit=0 --innodb-flush-method=O_DIRECT ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: ghost MYSQL_USER: ghost MYSQL_PASSWORD: ghost restart: always volumes: - ./mysql:/var/lib/mysql healthcheck: test: mysql -uroot -proot ghost -e 'select 1' interval: 5s retries: 120 redis: image: redis:7.0 restart: always ports: - 6379:6379 healthcheck: test: - CMD - redis-cli - --raw - incr - ping interval: 1s retries: 120 # prometheus: # profiles: [monitoring] # image: prom/prometheus:v2.30.3 # container_name: ghost-prometheus # ports: # - 9090:9090 # restart: always # volumes: # - ./.docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml # grafana: # profiles: [monitoring] # image: grafana/grafana:8.3.0 # container_name: ghost-grafana # ports: # - 3000:3000 # restart: always # environment: # - GF_AUTH_ANONYMOUS_ENABLED=true # - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin # volumes: # - ./.docker/grafana/datasources:/etc/grafana/provisioning/datasources # - ./.docker/grafana/dashboard.yml:/etc/grafana/provisioning/dashboards/main.yaml # - ./.docker/grafana/dashboards:/var/lib/grafana/dashboards # pushgateway: # profiles: [monitoring] # image: prom/pushgateway:v1.6.0 # container_name: ghost-pushgateway # ports: # - 9091:9091 # mailhog: # image: mailhog/mailhog:latest # container_name: ghost-mailhog # profiles: [ghost] # ports: # - "1025:1025" # SMTP server # - "8025:8025" # Web interface # restart: always