將java項目打包成docker鏡像


簡介:將jar打包成鏡像好說,畢竟jar包長的都是一樣的,但是我們只是寫了一個普通的java項目,我也不方便封裝成jar包什么的,但是我們也想打包docker image怎么辦呢,我們可以用編譯后的java文件打包鏡像

思路:jdk和tomcat封裝在一個鏡像中,mysql是另一個單獨的鏡像,我們把編譯后的代碼放在tomcat中,編譯后的代碼在哪自己google,baidu

步驟:1.本地下好tomcat和jdk(有時候遠程太慢了,就不再Dockerfile寫遠程了),將tomcat解壓,將編譯后的java文件放在tomcat的webapp下,jdk不管它

這里需要注意apache是自己新建的一個目錄,真正的tomcat在它的下面,為什么這么弄呢,因為在Dockerfile中ADD的時候,copy的是目錄下的文件,而目錄本身不復制,那沒辦法自己我自己加一層目錄了

Dockerfile內容(Dockerfile一定要跟jdk和tomcat什么的在同一目錄):

FROM centos:latest
MAINTAINER waterlufei

#install jdk and tomcat 

ADD jdk-8u121-linux-x64.tar.gz /usr/java/
ADD apache /home/schoolapp/

#jdk enviroment
ENV JAVA_HOME=/usr/java/jdk1.8.0_121
ENV JRE_HOME=/usr/java/jdk1.8.0_121/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
ENV PATH=$JAVA_HOME/bin:$PATH

EXPOSE 8080

#tomcat self start
CMD ["/home/schoolapp/apache-tomcat-7.0.76/bin/catalina.sh","run"]

 簡單說明下:用到了centos鏡像做系統,作者是waterlufei,將jdk-8u121-linux-x64.tar.gz 存放在容器內部的 /usr/java/目錄,將tomcat存放在容器內部/home/schoolapp/目錄下,不是主機所在目錄喔,配置jdk環境變量,開放容器端口8080,最后讓tomcat自啟動

配置好了Dockerfile,

打包docker images 命令: docker build -t myapp .    (.不要忘了)

查看鏡像有沒有打包好:  docker images

將鏡像放到容器中運行:docker run -d -p 8080:8080 myapp

瀏覽器訪問,成功訪問項目主頁

 

https://blog.csdn.net/tonysh_zds/article/details/90053746


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM