настройте разные имена хостов для каждого содержимого при использовании docker compose swarm?

#docker #docker-compose #dockerfile #docker-swarm

#docker #docker-compose #dockerfile #docker-swarm

Вопрос:

docker-compose.yml

 services:
    {{ app }}{{ env_id }}-{{stage_name}}:
      image: "{{ registry_url }}/{{ app }}-{{ stage_name }}:{{ tag }}"
      ports:
        - {{ port }}:3000
      volumes:
        - /var/log/{{ app }}/logs:/app/logs
      networks:
        - net{{ env_id }}
      hostname: "{{contain_name}}"
      logging:
        driver: syslog
        options:
          tag: "{{ app }}"
      stop_grace_period: 20s
      healthcheck:
        test: ["CMD", "curl", "-f", "http://localhost:3000/version"]
        interval: 5s
        timeout: 10s
        retries: 3
        start_period: 5s
      deploy:
        replicas: 4
        update_config:
          parallelism: 1
          order: start-first
          failure_action: rollback
          monitor: 15s
        rollback_config:
          order: start-first
        restart_policy:
          condition: any
          delay: 5s
        resources:
          limits:
           memory: 7G

networks:
  net{{ env_id }}:
    name: {{ app }}{{ env_id }}_network
  

используйте docker-compose.yml, я могу получить стек swarm и четыре содержимого, но у содержимого одинаковое имя хоста, я хочу, чтобы они назывались как
«contain_name1
contain_name2
contain_name3
contain_name4»
Как это сделать?

Комментарии:

1. Если вы удалите hostname: строки, контейнеры будут считать, что их имена хостов являются их шестнадцатизначными идентификаторами контейнеров. Обычно вам вообще не нужно это устанавливать.

2. Я хочу установить имена хостов с одинаковым префиксом

3. Почему? Это влияет только на то, что контейнер считает своим собственным именем хоста, и это почти нигде не видно. Я склонен полностью игнорировать hostname: .

Ответ №1:

К сожалению, эта функциональность пока не поддерживается. https://github.com/docker/swarmkit/issues/1242 Kubernetes может решить эту проблему с помощью StatefulSet .https://kubernetes.io/docs/concepts/workloads/controllers/statefulset /