简介:将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

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

将java项目打包成docker镜像的更多相关文章

  1. 将java项目打包成docker镜像:镜像=副本

    简介:将jar打包成镜像好说,毕竟jar包长的都是一样的,但是我们只是写了一个普通的java项目,我也不方便封装成jar包什么的,但是我们也想打包docker image怎么办呢,我们可以用编译后的j ...

  2. IDEA中直接将 SpringBoot项目打包成 Docker镜像时 pom.xml的配置

    <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactI ...

  3. SpringBoot打包成Docker镜像

    1. 本文环境 Maven:3.6.3(Maven配置参考) SpringBoot version:2.3.4.RELEASE Docker version: 19.03.11(Docker搭建参考) ...

  4. golang应用打包成docker镜像

    golang编译的应用是不需要依赖其他运行环境的,那么为什么还需要打包成docker镜像呢?当需要附带配置和日志等文件时可以更方便的移植和运行,下面介绍从dockerfile编译成镜像. 在项目根目录 ...

  5. java项目打包成可运行的jar,main方法带参数

    转载 原文地址:http://www.cnblogs.com/neillee/p/6063808.html#commentform 将 java 项目打包成可运行的 jar 包(main 函数带参数) ...

  6. Java项目打包成exe的详细教程

    Java项目打包成exe的详细教程 把Java项目打包成exe共分为以下两步: 1. 利用Eclipse先把Java项目先打成jar包 2. 利用exe4j工具把jar包转成exe 这里以Java项目 ...

  7. 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定

    1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...

  8. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  9. 把java项目打包成jar包并可以直接运行【我】

    首先创建一个maven的jar项目,然后代码写好后,在项目右键,导出: 选择java下面的可运行的jar文件: 下一步: 要注意的是: launch configuration 此选项是指定选中要导出 ...

随机推荐

  1. 【功能代码】---2.patchca生成验证码

    Java使用patchca生成验证码        Patchca是Piotr Piastucki写的一个java验证码开源库,打包成jar文件发布,patchca使用简单但功能强大. 本例实现了自定 ...

  2. C# WPF动点任意移动气泡画法(解决方案使用到数学勾股定理、正弦定理、向量知识)。

    许久没写博客了,最近在研究WPF下气泡的画法,研发过程还是比较艰辛的(主要是复习了高中的数学知识,MMP全忘光了),这篇博客主要是提供一个思路给大家参考,如果有大神还有更好的解决方案可以不吝您的言论尽 ...

  3. 开源巨献:Google最热门60款开源项目

    文章整理于互联网.本文收集了 60款 Google 开源的项目,排名顺序按照 Github ★Star 数量排列. 0.机器学习系统 TensorFlow  ★Star 62533 TensorFlo ...

  4. CVE-2017-11882漏洞 Msf利用复现

    中午时候收到了推送的漏洞预警,在网上搜索相关信息看到很多大牛已经开发出生成doc文档的脚本和msf的poc,本文记录CVE-2017-11882 漏洞在 Msf下的利用. 0x00 漏洞简介 2017 ...

  5. SpringMVC 快速入门

    SpringMVC 快速入门 SpringMVC 简介 SpringMVC是 Spring为展示层提供的基于Web MVC设计模式的请求驱动类型的轻量级Web框架,它的功能和Struts2一样.但比S ...

  6. BST 解析 (一)

    这篇博文主要初步介绍Binary Search Tree(BST)的一些基本功能以及应用场景,由于BST的相关知识比较多,下一节会接着补充BST的一些功能.这一节主要分为以下三个要素: BST 的定义 ...

  7. SQL Count(*)函数,GROUP_By,Having的联合使用

    COUNT(*)  函数返回在给定的选择中被选的行数. 语法:SELECT  COUNT(*) FROM  table 使用:现在有一个表,名叫app_category,从Navicat中可以看到表中 ...

  8. Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

    service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一 ...

  9. jquery 循环数组输出显示在html页面

    jquery 没有双向数据绑定,但是很多需求确实需要我们从后台接收到数组或者对象循环显示在前台页面上,这时我们可以用字符串拼接,元素添加的方法去实现 js部分如下: $(function(){ var ...

  10. yum中$releasever、 $basearch等变量含义

    [root@kickstart ~]# rpm -qf /etc/redhat-release centos-release--4.1708.el7.centos.x86_64 yum中的$relea ...