Specify service label in docker-compose file

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:

  • –container-label: specify container label
  • –label: specify service label

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”

Source: StackOverflow