Ich erstelle ein Docker-Bild mit Tomcat und MySql. Ich habe eine WAR-Datei, die ich an den Tomcat schieben kann und das Docker-Bild funktioniert wie erwartet.Erstellen Sie Datenbank und Schema für mySQL in Docker
Aber die Anwendung benötigt auch eine Datenbank auf mySQL im selben Docker-Bild (da ich nicht mehrere Bilder ausführen möchte, da dies ziemlich klein ist und nur für eine Demonstration ist).
Ich benutze ein Tomcat Image als Basis und installiere mySql darauf. Das Basis-Betriebssystem ist Ubuntu.
Hier ist meine dockerfile:
#Get the base
FROM davidcaste/debian-tomcat:tomcat8
#Add mySql
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt-get -y update
RUN apt-get -y install wget zip gcc
RUN { \
echo mysql-community-server mysql-community-server/data-dir select ''; \
echo mysql-community-server mysql-community-server/root-pass password ''; \
echo mysql-community-server mysql-community-server/re-root-pass password ''; \
echo mysql-community-server mysql-community-server/remove-test-db select false; \
} | debconf-set-selections \
&& apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y mysql-server
RUN /etc/init.d/mysql start
RUN wget http://github.com/xxxx/xxxx/blob/master/xxxx/src/main/resources/sql/create-schema.sql
RUN cp create-schema.sql /usr/
RUN wget http://github.com/xxxx/xxxx/blob/master/xxxx/src/main/resources/sql/metadata.sql
RUN cp metadata.sql /usr/
#RUN mysql -- this gives error
#RUN create database test; -- this gives error
#Get the Web Application from Nexus
RUN wget "http://mynexus:8081/nexus/service/local/artifact/maven/redirect?g=org.my&a=my-app&r=repo&e=war&v=LATEST" --content-disposition -O app.war
#Copy the war file
RUN cp app.war /opt/tomcat/webapps/
EXPOSE 8080
CMD ["catalina.sh", "run"]
Ohne die mySql verwandte Elemente (Datenbank erstellen usw.) die Docker Werke bauen und es läuft gut. Aber ich kann nicht verstehen, wie ich die Datenbank mit meinen Schema- und Metadaten-SQL-Dateien erstellen kann.
Daumen hoch für den Docker Verfassen Vorschlag, das ist, wie ich das auch verwende. – nwinkler