2017-04-10 109 views
3

我想按照以下步驟碼頭卡桑德拉。 泊塢文件 - >碼頭工人 - 卡桑德拉

FROM oraclelinux:7.3 
COPY apache-cassandra-2.2.8-bin.tar.gz /opt 
RUN cd /opt && tar -xvzf apache-cassandra-2.2.8-bin.tar.gz 
RUN cd /opt && ln -s apache-cassandra-2.2.8 cassandra 
RUN cd /opt/cassandra && mkdir data && mkdir commitlog && mkdir saved_caches 
COPY cassandra.yaml /opt/cassandra/conf 
COPY cassandra-topology.properties /opt/cassandra/conf 
RUN chmod +x /opt/cassandra/bin/cassandra 
ENV CASSANDRA_CONFIG /opt/cassandra/conf 
ENV CASSANDRA_HOME /opt/cassandra 
RUN /opt/cassandra/bin/cassandra 
ENTRYPOINT ["/opt/cassandra/bin/cassandra"] 
EXPOSE 7000 7001 7199 9160 

當我生成使用

docker build -t my_cassandra . 

拋出以下錯誤消息卡桑德拉搬運工

Step 19/21 : RUN /opt/cassandra/bin/cassandra 
---> Running in 36bd332c523a 
cat: /etc/ld.so.conf.d/*.conf: No such file or directory 

當我生成使用卡桑德拉搬運工

docker run -it my_cassandra bin/bash 

它拋出相同的錯誤消息

cat: /etc/ld.so.conf.d/*.conf: No such file or directory 

如果刪除了入口點線或散列出來,搬運工構建並運行良好,但卡桑德拉不運行作爲搬運工運行命令的一部分。我必須登錄容器並手動啓動./cassandra

有沒有一種方法可以啓動cassandra作爲docker run命令的一部分?

+1

可你剛纔發佈了'Dockerfile'? –

+2

你可能會更好的一些現有的圖像:https://hub.docker.com/_/cassandra/ –

+0

@Andy,我編輯了上述部分碼頭文件代碼 – Kitcha

回答

0

從你上面的例子來看,它看起來不像ENTRYPOINT是這裏的問題。您不應該將Cassandra作爲Docker構建的一部分運行。

Step 19/21 : RUN /opt/cassandra/bin/cassandra ---> Running in 36bd332c523a cat: /etc/ld.so.conf.d/*.conf: No such file or directory

刪除RUN /opt/cassandra/bin/cassandra

查看Docker Hub上的官方Cassandra Docker鏡像。

鏈接:Official Dockerfile

鏈接:Docker Hub - Cassandra