我想为我的API和另一个必须使用我的API将使用docker-compose写入zookeeper服务器的数据消耗的进程启动zookeeper服务器和引导进程。docker-compose中的多个进程执行和排序问题
一旦我执行docker-compose up,我的zookeeper服务器就会成功启动,并且我的引导程序API能够连接到它并能够成功写入数据。
这里的约束是我的第二个进程需要等待我的API将数据写入zookeeper,否则会导致一个异常,因为在此之前没有节点会被API创建。因此,在我的docker-compose.ml文件的命令部分中,我执行了一个bash命令,并通过添加一个while循环使我的引导API无限运行,以便程序不会退出,并在第二个进程中添加一个sleep语句以便它等到API完成其工作。 (种族条件处理)。
根据我的理解,docker-compose使用docker-compose.yml文件中的“链接”处理排序,但不处理需要启动的单个进程的状态。按照我的意思,第一个进程退出成功后,第二个进程需要启动。
这里是我的搬运工,compose.yml文件 -
zookeeper:
image: xyz.com/temp
ports:
- "10000:2181"
bootstrapapi:
image: xyz.com/temp1
command: /bin/bash -c "cd /code; make test_data ZK_HOSTS=zookeeper:2181 CLUSTER=cluster ; while [ true ]; do sleep 5; done"
volumes:
- .:/test
links:
- zookeeper
xyz:
image: def.com/temp2
command: /bin/bash -c "sleep 10;python -m test --zk-hosts=zookeeper:2181 --zk-cluster-path=cluster "
links:
- zookeeper
如果您需要任何更多的细节,我会很高兴,让你知道。提前致谢。