diff --git a/docker-compose.yml b/docker-compose.yml index f3e04d22..14b852d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,53 +9,39 @@ services: etcd1: image: patroni networks: [ demo ] - env_file: docker/etcd.env container_name: demo-etcd1 hostname: etcd1 command: etcd -name etcd1 -initial-advertise-peer-urls http://etcd1:2380 + environment: &etcd_env + ETCD_LISTEN_PEER_URLS: http://0.0.0.0:2380 + ETCD_LISTEN_CLIENT_URLS: http://0.0.0.0:2379 + ETCD_INITIAL_CLUSTER: etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 + ETCD_INITIAL_CLUSTER_STATE: new + ETCD_INITIAL_CLUSTER_TOKEN: tutorial + ETCD_NAME: etcd1 + ETCD_INITIAL_ADVERTISE_PEER_URLS: http://etcd1:2380 etcd2: image: patroni networks: [ demo ] - env_file: docker/etcd.env container_name: demo-etcd2 hostname: etcd2 command: etcd -name etcd2 -initial-advertise-peer-urls http://etcd2:2380 + environment: + <<: *etcd_env + ETCD_NAME: etcd2 + ETCD_INITIAL_ADVERTISE_PEER_URLS: http://etcd2:2380 etcd3: image: patroni networks: [ demo ] - env_file: docker/etcd.env container_name: demo-etcd3 hostname: etcd3 command: etcd -name etcd3 -initial-advertise-peer-urls http://etcd3:2380 - - patroni1: - image: patroni - networks: [ demo ] - env_file: docker/patroni.env - hostname: patroni1 - container_name: demo-patroni1 environment: - PATRONI_NAME: patroni1 - - patroni2: - image: patroni - networks: [ demo ] - env_file: docker/patroni.env - hostname: patroni2 - container_name: demo-patroni2 - environment: - PATRONI_NAME: patroni2 - - patroni3: - image: patroni - networks: [ demo ] - env_file: docker/patroni.env - hostname: patroni3 - container_name: demo-patroni3 - environment: - PATRONI_NAME: patroni3 + <<: *etcd_env + ETCD_NAME: etcd3 + ETCD_INITIAL_ADVERTISE_PEER_URLS: http://etcd3:2380 haproxy: image: patroni @@ -67,3 +53,37 @@ services: - "5000:5000" - "5001:5001" command: haproxy + environment: &haproxy_env + ETCDCTL_ENDPOINTS: http://etcd1:2379,http://etcd2:2379,http://etcd3:2379 + PATRONI_ETCD3_HOSTS: "'etcd1:2379','etcd2:2379','etcd3:2379'" + PATRONI_SCOPE: demo + + patroni1: + image: patroni + networks: [ demo ] + env_file: docker/patroni.env + hostname: patroni1 + container_name: demo-patroni1 + environment: + <<: *haproxy_env + PATRONI_NAME: patroni1 + + patroni2: + image: patroni + networks: [ demo ] + env_file: docker/patroni.env + hostname: patroni2 + container_name: demo-patroni2 + environment: + <<: *haproxy_env + PATRONI_NAME: patroni2 + + patroni3: + image: patroni + networks: [ demo ] + env_file: docker/patroni.env + hostname: patroni3 + container_name: demo-patroni3 + environment: + <<: *haproxy_env + PATRONI_NAME: patroni3 diff --git a/docker/etcd.env b/docker/etcd.env deleted file mode 100644 index 6a1af075..00000000 --- a/docker/etcd.env +++ /dev/null @@ -1,5 +0,0 @@ -ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 -ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 -ETCD_INITIAL_CLUSTER=etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380 -ETCD_INITIAL_CLUSTER_STATE=new -ETCD_INITIAL_CLUSTER_TOKEN=tutorial diff --git a/docker/patroni.env b/docker/patroni.env index 10df2eb4..7c0f840e 100644 --- a/docker/patroni.env +++ b/docker/patroni.env @@ -1,6 +1,3 @@ -PATRONI_SCOPE=demo -PATRONI_ETCD3_HOSTS='etcd1:2379','etcd2:2379','etcd3:2379' - PATRONI_RESTAPI_USERNAME=admin PATRONI_RESTAPI_PASSWORD=admin PATRONI_SUPERUSER_USERNAME=postgres @@ -9,6 +6,3 @@ PATRONI_REPLICATION_USERNAME=replicator PATRONI_REPLICATION_PASSWORD=replicate PATRONI_admin_PASSWORD=admin PATRONI_admin_OPTIONS=createdb,createrole - -# for etcdctl -ETCDCTL_ENDPOINTS=http://etcd1:2379,http://etcd2:2379,http://etcd3:2379