2017-04-10 70 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