job "members-mysql" {
  datacenters = ["aperture"]

  constraint {
    attribute = "${attr.unique.hostname}"
    value     = "wheatley"
  }

  group "db" {
    network {
      port "db" {
        static = 3306
      }
    }

    task "mariadb" {
      driver = "docker"

      template {
        data = <<EOH
MYSQL_ROOT_PASSWORD="{{ key "members-mysql/root/password" }}"
MYSQL_USER="{{ key "members-mysql/user/username" }}"
MYSQL_PASSWORD="{{ key "members-mysql/user/password" }}"
EOH

        destination = "local/file.env"
        env         = true
      }

      config {
        image = "mariadb:latest"
        ports = ["db"]

        volumes = [
          "/opt/members-mysql:/var/lib/mysql",
          "local/server.cnf:/etc/mysql/mariadb.conf.d/50-server.cnf",
        ]
      }

      template {
        data        = <<EOH
[server]

[mariadbd]

pid-file                = /run/mysqld/mysqld.pid
basedir                 = /usr

bind-address            = 0.0.0.0

expire_logs_days        = 10

character-set-server     = utf8mb4
character-set-collations = utf8mb4=uca1400_ai_ci

[mariadbd]
        EOH
        destination = "local/server.cnf"
      }

      resources {
        cpu    = 400
        memory = 800
      }

      service {
        name = "members-mysql"
        port = "db"

        check {
          type     = "tcp"
          interval = "2s"
          timeout  = "2s"
        }
      }
    }
  }
}