job "${APP_NAME}-${CI_COMMIT_BRANCH}-job" {
  datacenters = ["sh01"]
  type        = "service"

  group "${APP_NAME}-${CI_COMMIT_BRANCH}-group" {
    count = 1

    restart {
      attempts = 10
      interval = "5m"
      delay    = "25s"
      mode     = "delay"
    }

    task "${APP_NAME}-${CI_COMMIT_BRANCH}-task" {
      driver = "docker"
      resources {
        cpu    = 50 # 50 MHz
        memory = 100 # 100 MB
      }

      env = {
        "API_ENV" : "prod"
        "ST_CONSUL_datacenter" = "sh01"

        "APP_NAME"         = "${APP_NAME}"
        "CI_COMMIT_BRANCH" = "${CI_COMMIT_BRANCH}"
      }

      config {
        image        = "${CURRENT_IMAGE_URL}"
        network_mode = "sh01"
        # No port map required.

        auth {
          server_address = "${CI_REGISTRY}"
          username       = "${CI_REGISTRY_USER}"
          password       = "${CI_REGISTRY_PASSWORD}"
        }
      }

      constraint {
        attribute    = "${meta.cached_binaries}"
        set_contains = "api"
      }

      service {
        name = "${APP_NAME}"
        tags = ["${CI_COMMIT_BRANCH}"]

        #使用配置的 网络ip 注册服务的访问路径和端口
        address_mode = "driver"
        port         = "8080"

        check {
          //检测的 方式、ip 、端口
          type         = "http"
          address_mode = "driver"
          port         = "8080"

          path     = "/health"
          interval = "10s"
          timeout  = "1s"
        }
      }
    }
  }
}