簡介:將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