When using `registry:`, the credential spec is read from the Windows registry on
the daemon's host. A registry value with the given name must be located in:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Containers\CredentialSpecs
The following example loads the credential spec from a value named `my-credential-spec`
in the registry:
```yml
credential_spec:
registry: my-credential-spec
```
#### Example gMSA configuration
When configuring a gMSA credential spec for a service, you only need
to specify a credential spec with `config`, as shown in the following example:
```yml
services:
myservice:
image: myimage:latest
credential_spec:
config: my_credential_spec
configs:
my_credentials_spec:
file: ./my-credential-spec.json
```
### `depends_on`
{{% include "compose/services-depends-on.md" %}}
#### Short syntax
The short syntax variant only specifies service names of the dependencies.
Service dependencies cause the following behaviors:
- Compose creates services in dependency order. In the following
example, `db` and `redis` are created before `web`.
- Compose removes services in dependency order. In the following
example, `web` is removed before `db` and `redis`.
Simple example:
```yml
services:
web:
build: .
depends_on:
- db
- redis
redis:
image: redis
db:
image: postgres
```
Compose guarantees dependency services have been started before
starting a dependent service.
Compose waits for dependency services to be "ready" before
starting a dependent service.
#### Long syntax
The long form syntax enables the configuration of additional fields that can't be
expressed in the short form.
- `restart`: When set to `true` Compose restarts this service after it updates the dependency service.
This applies to an explicit restart controlled by a Compose operation, and excludes automated restart by the container runtime
after the container dies. Introduced in Docker Compose version [2.17.0](/manuals/compose/releases/release-notes.md#2170).
- `condition`: Sets the condition under which dependency is considered satisfied
- `service_started`: An equivalent of the short syntax described previously
- `service_healthy`: Specifies that a dependency is expected to be "healthy"
(as indicated by [`healthcheck`](#healthcheck)) before starting a dependent
service.
- `service_completed_successfully`: Specifies that a dependency is expected to run
to successful completion before starting a dependent service.
- `required`: When set to `false` Compose only warns you when the dependency service isn't started or available. If it's not defined
the default value of `required` is `true`. Introduced in Docker Compose version [2.20.0](/manuals/compose/releases/release-notes.md#2200).
Service dependencies cause the following behaviors:
- Compose creates services in dependency order. In the following
example, `db` and `redis` are created before `web`.
- Compose waits for healthchecks to pass on dependencies
marked with `service_healthy`. In the following example, `db` is expected to
be "healthy" before `web` is created.
- Compose removes services in dependency order. In the following
example, `web` is removed before `db` and `redis`.
```yml
services:
web:
build: .
depends_on:
db:
condition: service_healthy
restart: true
redis:
condition: service_started
redis:
image: redis
db:
image: postgres
```
Compose guarantees dependency services are started before
starting a dependent service.
Compose guarantees dependency services marked with
`service_healthy` are "healthy" before starting a dependent service.
### `deploy`
`deploy` specifies the configuration for the deployment and lifecycle of services, as defined [in the Compose Deploy Specification](deploy.md).
### `develop`
{{< summary-bar feature_name="Compose develop" >}}
`develop` specifies the development configuration for maintaining a container in sync with source, as defined in the [Development Section](develop.md).