Docker运行Java -JAR文件来创buildCassandra KeySpaces。 但它没有创造

我尝试运行CMD“java -jar /tmp/migration.jar update_schema atlas”在cassandra中创buildKeyspace。 但是它没有在cassandra中创build任何密钥空间。 但是,如果我在命令行中运行相同的命令,它创build任何想法是什么问题?

我的dockerfile如下'FROM tomcat:8-jre8

ENV LANG en_US.UTF-8 ENV COMMAND="update" ENV ARGS="--logLevel=debug" WORKDIR /usr/local/tomcat/ ADD /migration.jar /tmp ADD atlas_migration.sh /usr/local/bin/atlas_migration.sh CMD ["/bin/sh", "/usr/local/bin/atlas_migration.sh"] CMD ENTRYPOINT ["java","-jar","/tmp/migration.jar","update_schema", "atlas"] CMD java -jar /tmp/migration.jar update_schema atlas ENV CATALINA_OPTS "-Xmx256m -Xms192m" EXPOSE 8085 CMD ./bin/catalina.sh start && tail -f ./logs/catalina.out' 

CMD用于指定容器启动时应该运行的命令。 如果要构build期间运行命令则执行后的状态将保留在映像中,您需要使用RUN

COPY优于ADD ,所以相关说明应该是:

 COPY /migration.jar /tmp COPY atlas_migration.sh /usr/local/bin/atlas_migration.sh RUN /usr/local/bin/atlas_migration.sh RUN ["java","-jar","/tmp/migration.jar","update_schema", "atlas"]