我试图运行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'
答案 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"]