Docker运行Java -JAR文件以创建Cassandra KeySpaces。但它没有创建

时间:2016-09-29 22:14:24

标签: docker cassandra dockerfile

我试图运行CMD" java -jar /tmp/migration.jar update_schema atlas"在cassandra中创建Keyspace。但它没有在cassandra中创建任何键空间。但是如果我在命令行中运行相同的命令,它会产生任何想法吗?

我的dockerfile如下     '来自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'

1 个答案:

答案 0 :(得分:1)

CMD用于指定容器启动时应运行的命令。如果您想在构建期间运行命令,那么执行后的状态将保留在图像中,您需要使用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"]