2.6 KiB
title | description | keywords |
---|---|---|
Profiles | Learn about profiles | compose, compose specification, profiles, compose file reference |
With profiles you can define a set of active profiles so your Compose application model is adjusted for various usages and environments.
The services top-level element supports a profiles
attribute to define a list of named profiles.
Services without a profiles
attribute are always enabled.
A service is ignored by Compose when none of the listed profiles
match the active ones, unless the service is
explicitly targeted by a command. In that case its profile is added to the set of active profiles.
Note
All other top-level elements are not affected by
profiles
and are always active.
References to other services (by links
, extends
or shared resource syntax service:xxx
) do not
automatically enable a component that would otherwise have been ignored by active profiles. Instead
Compose returns an error.
Illustrative example
services:
foo:
image: foo
bar:
image: bar
profiles:
- test
baz:
image: baz
depends_on:
- bar
profiles:
- test
zot:
image: zot
depends_on:
- bar
profiles:
- debug
In the above example:
- If the Compose application model is parsed with no profile enabled, it only contains the
foo
service. - If the profile
test
is enabled, the model contains the servicesbar
andbaz
, and servicefoo
, which is always enabled. - If the profile
debug
is enabled, the model contains bothfoo
andzot
services, but notbar
andbaz
, and as such the model is invalid regarding thedepends_on
constraint ofzot
. - If the profiles
debug
andtest
are enabled, the model contains all services;foo
,bar
,baz
andzot
. - If Compose is executed with
bar
as the explicit service to run,bar
and thetest
profile are active even iftest
profile is not enabled. - If Compose is executed with
baz
as the explicit service to run, the servicebaz
and the profiletest
are active andbar
is pulled in by thedepends_on
constraint. - If Compose is executed with
zot
as the explicit service to run, again the model is invalid regarding thedepends_on
constraint ofzot
, sincezot
andbar
have no commonprofiles
listed. - If Compose is executed with
zot
as the explicit service to run and profiletest
is enabled, profiledebug
is automatically enabled and servicebar
is pulled in as a dependency starting both serviceszot
andbar
.
See how you can use profiles
in Docker Compose.