ITIssue
ITIssue

Reputation: 1

Docker Running the Java -JAR file to create Cassandra KeySpaces. But its not creating

I tried to run the CMD "java -jar /tmp/migration.jar update_schema atlas " to create the Keyspace in the cassandra. But its not creating any keyspaces in cassandra. But if i run same command in the command line its creating any idea whats the issue?

My dockerfile is as follows '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'

Upvotes: 0

Views: 171

Answers (1)

Elton Stoneman
Elton Stoneman

Reputation: 19194

CMD is for specifying the command the container should run when it starts. If you want to run a command during the build, so the state after execution is persisted in the image, you need to use RUN.

COPY is also preferable to ADD, so the relevant instructions should be:

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"]

Upvotes: 1

Related Questions