zoukankan      html  css  js  c++  java
  • 将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

    浏览器访问,成功访问项目主页

  • 相关阅读:
    CSS3实现的超酷页面过渡效果
    HTML5基本知识小测验
    多线程揭秘
    【框架设计】泛型的应用
    sql server 2005中的except和INTERSECT运算 .
    C#应用MemoryStream提高File读取速度
    .net错误处理机制
    sql 权限导致的问题
    超时时间已到。在操作完成之前超时时间已过或服务器未响应
    SQL差集的使用(EXCEPT)
  • 原文地址:https://www.cnblogs.com/austinspark-jessylu/p/9045130.html
Copyright © 2011-2022 走看看