为使用docker compose 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 contains_name2 contains_name3 “ contain_name4” 怎么做?

解决方法

很遗憾,尚不支持此功能。 https://github.com/docker/swarmkit/issues/1242 Kubernetes可以使用StatefulSet解决此问题。 https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...