Reputation: 201
When labeling a service in the docker-compose file only the created container is labeled and not the service itself.
I would like to add a label to a service created using a docker-compose file. When adding the label under the labels property, the label is only added to the corresponding container and not to the service itself.
In the documentation of the docker service create command there are two different options for labels:
I'm wondering why the label property in the docker-compose file only corresponds to the first option.
version: "3.7"
services:
zalenium:
image: zalenium:latest
hostname: zalenium
deploy:
placement:
constraints:
- node.role == manager
labels:
- "de.zalando.gridRole=hub"
ports:
- "4444:4444"
networks:
- zalenium
environment:
- PULL_SELENIUM_IMAGE=true
- ZALENIUM_PROXY_CLEANUP_TIMEOUT=1800
command: ["start", "--swarmOverlayNetwork", "tau_zalenium", "--videoRecordingEnabled", "false"]
networks:
zalenium:
driver: overlay
attachable: true
Actual result: Only the created container has the label "de.zalando.gridRole"
Expected result: The service should have the label "de.zalando.gridRole"
Upvotes: 9
Views: 45419
Reputation: 10757
According to the docker-compose reference, you need to specify the service labels like this:
version: "3.7"
services:
web:
image: web
deploy:
labels:
com.example.description: "This label will appear on the web service"
Add a deploy section and mention your labels there.
As with docker, here as well these labels are taken into account when deploying on a docker swarm. Otherwise they are ignored.
Upvotes: 17