Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • 1
  • 1.2
  • 1.2.2
  • 1.2.1
  • 1.2.0
  • 1.1
  • 1.1.0
  • 1.0
  • 1.0.2
  • 1.0.1
11 results

kicker.json

Blame
  • kicker.json 7.22 KiB
    
    {
      "name": "Docker Compose",
      "description": "Deploy your application with [Docker Compose](https://docs.docker.com/compose/)",
      "template_path": "templates/gitlab-ci-docker-compose.yml",
      "kind": "hosting",
      "prefix": "dcmp",
      "job_prefix": "compose",
      "is_component": true,
      "variables": [
        {
          "name": "DCMP_IMAGE",
          "description": "The Docker image used to run Docker Compose CLI commands - **set the version required by your Docker Compose cluster**",
          "default": "registry.hub.docker.com/library/docker:latest"
        },
        {
          "name": "DCMP_CMD",
          "description": "The docker compose command (empty means _auto_)",
          "values": ["", "docker compose", "docker-compose"],
          "advanced": true
        },
        {
          "name": "DCMP_BASE_APP_NAME",
          "description": "Base application name",
          "default": "$CI_PROJECT_NAME",
          "advanced": true
        },
        {
          "name": "DCMP_ENVIRONMENT_URL",
          "type": "url",
          "description": "The default environments url _(only define for static environment URLs declaration)_\n\n_supports late variable expansion (ex: `https://%{environment_name}.dcmp.acme.com`)_"
        },
        {
          "name": "DCMP_SCRIPTS_DIR",
          "description": "Directory where Compose files, dotenv files and hook scripts are located",
          "default": ".",
          "advanced": true
        },
        {
          "name": "DCMP_UP_OPTS",
          "description": "[`compose up` options](https://docs.docker.com/reference/cli/docker/compose/up/#options)",
          "default": "--no-build --remove-orphans --wait --wait-timeout 180"
        },
        {
          "name": "DCMP_DOWN_OPTS",
          "description": "[`compose down` options](https://docs.docker.com/reference/cli/docker/compose/down/#options)",
          "default": "--volumes --remove-orphans --rmi all"
        },    
        {
          "name": "DCMP_SSH_PRIVATE_KEY",
          "description": "Default SSH key to use when connecting to Docker hosts over SSH (can be overridden per env)",
          "secret": true
        },
        {
          "name": "DCMP_SSH_KNOWN_HOSTS",
          "description": "SSH `known_hosts` (file or text variable)"
        }
    ],
      "features": [
        {
          "id": "config",
          "name": "Compose Config",
          "description": "Runs [`compose config`](https://docs.docker.com/reference/cli/docker/compose/config/) to detect errors in your Compose file(s)",
          "disable_with": "DCMP_CONFIG_DISABLED",
          "variables": [
            {
              "name": "DCMP_CONFIG_OPTS",
              "description": "[`compose config` options](https://docs.docker.com/reference/cli/docker/compose/config/#options)",
              "default": "--quiet",
              "advanced": true
            }
          ]
        },
        {
          "id": "review",
          "name": "Review",
          "description": "Dynamic review environments for your topic branches (see GitLab [Review Apps](https://docs.gitlab.com/ee/ci/review_apps/))",
          "variables": [
            {
              "name": "DCMP_REVIEW_DOCKER_HOST",
              "description": "Docker Host for `review` env (ex: `ssh://docker@docker-host-for-review:2375`)",
              "mandatory": true
            },
            {
              "name": "DCMP_REVIEW_SSH_PRIVATE_KEY",
              "description": "`review` env specific SSH key to use when connecting to Docker Host over SSH",
              "secret": true
            },
            {
              "name": "DCMP_REVIEW_APP_NAME",
              "description": "The application name for `review` env (only define to override default)",
              "advanced": true
            },
            {
              "name": "DCMP_REVIEW_AUTOSTOP_DURATION",
              "description": "The amount of time before GitLab will automatically stop `review` environments",
              "default": "4 hours"
            },
            {
              "name": "DCMP_REVIEW_ENVIRONMENT_URL",
              "type": "url",
              "description": "The `review` environments url _(only define for static environment URLs declaration and if different from default)_",
              "advanced": true
            }
          ]
        },
        {
          "id": "integration",
          "name": "Integration",
          "description": "A continuous-integration environment associated to your integration branch (`develop` by default)",
          "variables": [
            {
              "name": "DCMP_INTEG_DOCKER_HOST",
              "description": "Docker Host for `integration` env (ex: `ssh://docker@docker-host-for-integ:2375`)",
              "mandatory": true
            },
            {
              "name": "DCMP_INTEG_SSH_PRIVATE_KEY",
              "description": "`integration` env specific SSH key to use when connecting to Docker Host over SSH",
              "secret": true
            },
            {
              "name": "DCMP_INTEG_APP_NAME",
              "description": "The application name for `integration` env (only define to override default)",
              "advanced": true
            },
            {
              "name": "DCMP_INTEG_ENVIRONMENT_URL",
              "type": "url",
              "description": "The `integration` environment url _(only define for static environment URLs declaration and if different from default)_",
              "advanced": true
            }
          ]
        },
        {
          "id": "staging",
          "name": "Staging",
          "description": "An iso-prod environment meant for testing and validation purpose on your production branch (`main` or `master` by default)",
          "variables": [
            {
              "name": "DCMP_STAGING_DOCKER_HOST",
              "description": "Docker Host for `staging` env (ex: `ssh://docker@docker-host-for-staging:2375`)",
              "mandatory": true
            },
            {
              "name": "DCMP_STAGING_SSH_PRIVATE_KEY",
              "description": "`staging` env specific SSH key to use when connecting to Docker Host over SSH",
              "secret": true
            },
            {
              "name": "DCMP_STAGING_APP_NAME",
              "description": "The application name for `staging` env (only define to override default)",
              "advanced": true
            },
            {
              "name": "DCMP_STAGING_ENVIRONMENT_URL",
              "type": "url",
              "description": "The `staging` environment url _(only define for static environment URLs declaration and if different from default)_",
              "advanced": true
            }
          ]
        },
        {
          "id": "prod",
          "name": "Production",
          "description": "The production environment",
          "variables": [
            {
              "name": "DCMP_PROD_DOCKER_HOST",
              "description": "Docker Host for `production` env (ex: `ssh://docker@docker-host-for-prod:2375`)",
              "mandatory": true
            },
            {
              "name": "DCMP_PROD_SSH_PRIVATE_KEY",
              "description": "`production` env specific SSH key to use when connecting to Docker Host over SSH",
              "secret": true
            },
            {
              "name": "DCMP_PROD_APP_NAME",
              "description": "The application name for `production` env (only define to override default)",
              "advanced": true
            },
            {
              "name": "DCMP_PROD_ENVIRONMENT_URL",
              "type": "url",
              "description": "The `production` environment url _(only define for static environment URLs declaration and if different from default)_",
              "advanced": true
            },
            {
              "name": "DCMP_PROD_DEPLOY_STRATEGY",
              "description": "Defines the deployment to `production` strategy.",
              "type": "enum",
              "values": ["manual", "auto"],
              "default": "manual"
            }
          ]
        }
      ]
    }