问题描述
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/