docker工人 – 卡桑德拉

我试图通过以下步骤dockerize cassandra。 Docker文件 – >

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 

当我build立cassandradocker使用

 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 

当我build立cassandradocker使用

 docker run -it my_cassandra bin/bash 

它会抛出相同的错误信息

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

如果我删除ENTRYPOINT行或散列它,dockerbuild设和运行良好,但cassandra不作为docker运行命令的一部分运行。 我必须login到容器,并手动启动./cassandra

有没有办法可以启动cassandra作为docker run命令的一部分?

从你上面的例子来看,这里看起来不像入口点是个问题。 您不应该运行Cassandra作为Docker构build的一部分。

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 Image。

链接: 官方Dockerfile

链接: Docker Hub – Cassandra