Docker运行Java -JAR文件以创建Cassandra KeySpaces。但它没有创建
问题描述:
我试图运行CMD“java -jar /tmp/migration.jar update_schema atlas”在cassandra中创建Keyspace。但它没有在cassandra中创建任何密钥空间。但是,如果我在命令行中运行相同的命令,它会创建任何想法什么是什么问题?Docker运行Java -JAR文件以创建Cassandra KeySpaces。但它没有创建
我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'
答
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"]