[英]docker-compose does not launch
我正在嘗試使用docker-compose啟動2個圖像-Apache Cassandra作為服務器運行-另一個類似的容器,但是運行sql解釋器
我對Docker來說還很陌生,這是我到目前為止嘗試過的:
這是我的docker-compose.yml
version: '2'
services:
cassandra-srv:
image: cassandra:latest
ports:
- "7000:7000"
- "7001:7001"
- "9042:9042"
- "7199:7199"
- "9160:9160"
container_name: cassandra-srv
cqlsh:
build: cassandra-build
image: cassandra:mycqlsh
links:
- cassandra-srv
container_name: cassandra-client
depends_on:
- cassandra-srv
entrypoint: /usr/local/bin/wait-for-it.sh cassandra-srv:9042 && cqlsh
這里的想法是我定義了兩個服務。 我已經為本地計算機和其他docker鏡像打開了比所需更多的端口。 服務器應該啟動,並且客戶端在啟動過程中將使用一個小的實用程序腳本來等待服務器完全啟動,然后跳入交互式外殼。 為此,通過此Dockerfile調整了基本的cassandra映像:
FROM cassandra
MAINTAINER jonesn@uk.ibm.com
ENV container docker
WORKDIR /tmp
ADD https://raw.githubusercontent.com/vishnubob/wait-for-it/master/wait-for-it.sh /usr/local/bin
RUN chmod +x /usr/local/bin/wait-for-it.sh
但是,雖然我可以*啟動cassandra鏡像很好*通過在docker調用上直接運行命令來啟動同一圖像,但直接進入cqlsh *構建精致的docker鏡像
我不能做的就是簡單地運行“ docker-compose run cqlsh”,期望它可以構建客戶端映像,啟動服務器,等待並跳入外殼。
我敢肯定,缺乏docker-compose知識是原因,有人願意為這個新手提供一些提示嗎? ;-)
謝謝奈傑爾。
我會回答我自己的新手問題
docker-compose up
給定以上定義,足以啟動客戶端和服務器,此外,需要將入口點行更改為
entrypoint: /usr/local/bin/wait-for-it.sh -t 300 cassandra-srv:9042 -- cqlsh cassandra-srv 9042
來延長超時時間,並且還為包裝腳本本身啟動sql解釋器
實際上,這也不起作用,因為cqlsh容器將退出,因為沒有連接任何終端。 使用docker-compose“ run”命令似乎是一個更好的選擇
docker-compose run cqlsh cqlsh localhost 9042
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.