Skip to content

Instantly share code, notes, and snippets.

@abdulhadad
Last active September 21, 2018 09:48
Show Gist options
  • Save abdulhadad/853b1cbc6c158b82edcbb61c692922c7 to your computer and use it in GitHub Desktop.
Save abdulhadad/853b1cbc6c158b82edcbb61c692922c7 to your computer and use it in GitHub Desktop.
Migrasi aplikasi java ke Docker Image

Migrasi aplikasi java ke Docker Image

Kompile ke War di lokal dan jalankan di Tomcat

  • Siapkan JDK, Maven, dan Tomcat 8.5
  • Contoh aplikasi dari Mkyong CounterWebApp
  • Build aplikasi dengan mvn clean package
  • Jalankan package war aplikasi di Tomcat.
    • Pindahkan target/CounterWebApp.war ke tomcat/webapps/

    • Jalankan tomcat

      cd tomcat/bin
      chmod +x *.sh
      ./startup.sh
      
      # lihat log
      tail -f ../logs/catalina.out
    • Buka browser http://localhost:8080/CounterWebApp/

Buat image container dari package war aplikasi

  • Butuh image container tomcat:8.5
  • Butuh package war aplikasi target/CounterWebApp.war
  • Pull image tomcat 8.5 docker pull tomcat:8.5
  • Buat Dockerfile
FROM tomcat:8.5

COPY ./CounterWebApp.war /usr/local/tomcat/webapps/
  • Build image container aplikasi docker build -t counter-web-app .
  • Lihat hasil build dengan docker images
  • Tes jalankan dengan docker run -itd -p 8000:8080 --name counter-web-app-1 counter-web-app
  • Buka web http://alamat:8000/CounterWebApp

Buat image container dari source aplikasi

  • Buat Dockerfile
FROM openjdk:8-jdk

# siapkan tomcat
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
RUN wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz \
    && tar -xf apache-tomcat-8.5.34.tar.gz && mv apache-tomcat-8.5.34/* $CATALINA_HOME && rm apache-tomcat-8.5.34.tar.gz

# siapkan maven
RUN cd /tmp && wget http://www-eu.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip \
    && unzip apache-maven-3.5.4-bin.zip && rm apache-maven-3.5.4-bin.zip 

# compile aplikasi
COPY Maven-WebProject-CounterWebApp.zip /tmp
RUN cd /tmp && unzip Maven-WebProject-CounterWebApp.zip && rm Maven-WebProject-CounterWebApp.zip \
    && cd /tmp/CounterWebApp && ../apache-maven-3.5.4/bin/mvn package

# siapkan aplikasi
RUN cp /tmp/CounterWebApp/target/CounterWebApp.war /usr/local/tomcat/webapps/

# remove app source code
RUN rm -rf /tmp/CounterWebApp

EXPOSE 8080
CMD ["catalina.sh", "run"]
  • Build image container aplikasi docker build -t counter-web-app .
  • Lihat hasil build dengan docker images
  • Tes jalankan dengan docker run -itd -p 8000:8080 --name counter-web-app-1 counter-web-app
  • Buka web http://alamat:8000/CounterWebApp

Otomasi build image dengan CI Server

  • Buat docker-compose.yml dengan image ci server, version control
  • Jalankan dengan docker-compose up -d
  • TODO

Referensi

FROM openjdk:8-jdk
# siapkan tomcat
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
RUN wget http://www-eu.apache.org/dist/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz \
&& tar -xf apache-tomcat-8.5.34.tar.gz && mv apache-tomcat-8.5.34/* $CATALINA_HOME && rm apache-tomcat-8.5.34.tar.gz
# siapkan maven
RUN cd /tmp && wget http://www-eu.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip \
&& unzip apache-maven-3.5.4-bin.zip && rm apache-maven-3.5.4-bin.zip
# compile aplikasi
COPY Maven-WebProject-CounterWebApp.zip /tmp
RUN cd /tmp && unzip Maven-WebProject-CounterWebApp.zip && rm Maven-WebProject-CounterWebApp.zip \
&& cd /tmp/CounterWebApp && ../apache-maven-3.5.4/bin/mvn package
# siapkan aplikasi
RUN cp /tmp/CounterWebApp/target/CounterWebApp.war /usr/local/tomcat/webapps/
# remove app source code
RUN rm -rf /tmp/CounterWebApp
EXPOSE 8080
CMD ["catalina.sh", "run"]
FROM tomcat:8.5
COPY ./CounterWebApp.war /usr/local/tomcat/webapps/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment