# documentation: https://ghost.org
# slogan: Ghost is a content management system (CMS) and blogging platform.
# tags: cms, blog, content, management, system
# logo: svgs/ghost.svg
# port: 2368

services:
  ghost:
    image: ghost:5
    volumes:
      - ghost-content-data:/var/lib/ghost/content
    environment:
      - url=$SERVICE_FQDN_GHOST_2368
      - database__client=mysql
      - database__connection__host=mysql
      - database__connection__user=$SERVICE_USER_MYSQL
      - database__connection__password=$SERVICE_PASSWORD_MYSQL
      - database__connection__database=${MYSQL_DATABASE-ghost}
      - mail__transport=SMTP
      - mail__options__auth__pass=${MAIL_OPTIONS_AUTH_PASS}
      - mail__options__auth__user=${MAIL_OPTIONS_AUTH_USER}
      - mail__options__secure=${MAIL_OPTIONS_SECURE:-true}
      - mail__options__port=${MAIL_OPTIONS_PORT:-465}
      - mail__options__service=${MAIL_OPTIONS_SERVICE:-Mailgun}
      - mail__options__host=${MAIL_OPTIONS_HOST}
    depends_on:
      mysql:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "echo", "ok"]
      interval: 5s
      timeout: 20s
      retries: 10
  mysql:
    image: mysql:8.0
    volumes:
      - ghost-mysql-data:/var/lib/mysql
    environment:
      - MYSQL_USER=${SERVICE_USER_MYSQL}
      - MYSQL_PASSWORD=${SERVICE_PASSWORD_MYSQL}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_ROOT_PASSWORD=${SERVICE_PASSWORD_MYSQLROOT}
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
      interval: 5s
      timeout: 20s
      retries: 10