用Dockerfile 构建一个Java的编译环境

1、包括以下软件包

Ubuntu

jdk

maven

svn

2、jdk、maven 需要手动下载,下载之后分别为

jdk-8u51-linux-x64.gz

apache-maven-3.3.3-bin.tar.gz

3、创建一个Dockerfile文件,包含以下内容

FROM ubuntu

RUN apt-get update

RUN apt-get -y install subversion

ADD jdk-8u51-linux-x64.gz /usr/local

ADD apache-maven-3.3.3-bin.tar.gz /usr/local

ENV JAVA_HOME /usr/local/jdk1.8.0_51

ENV M2_HOME /usr/local/apache-maven-3.3.3

ENV PATH $PATH:$JAVA_HOME/bin:$M2_HOME/bin

简单的说一下上面的意思,就是基于ubuntu创建一个镜像,然后更新软件源,接着安装svn,然后把下载的jdk、maven添加到镜像,并放置到/usr/local目录,这里我添加的是一个压缩包,在构建镜像的适合,系统会自动解压,并且镜像里面也不会有压缩的文件,最后再设置环境变量

4、最后开始构建镜像

docker build -t dev .

构建完成之后,可以用docker images看到多了一个叫dev的镜像,这就是我们创建的,这里要注意的一点就是Dockerfile文件跟之前下载的压缩包是在同一个目录的,而且运行上面打包命令的时候也要确保在Dockerfile所在目录。

5、启动

docker run -i -t dev

启动之后,输入java 、mvn、svn,是不是都装好了,之后就可以在这个容器里面把代码从svn上面下载下来,然后再通过maven打包,然后部署到包含tomcat的容器里面。

Docker 的详细介绍:请点这里

Docker 的下载地址:请点这里

java的linux内核构建,构建一个Docker 的Java编译环境相关推荐

  1. Linux 内核如何描述一个进程?

    哈喽,我是吴同学,继续记录我的学习心得. 一.关于写文章 许多知识,书上或者网络上都有,就算这两个地方都没有,代码里也会有答案.但有时恰恰是 资料太多,反而让人难以检索出有用的信息. 面对同样的资料, ...

  2. Java微服务之Spring Boot on Docker,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  3. ARM树莓派高级开发——linux内核源码、树莓派源码编译、SD卡挂载

    文章目录 linux内核开发基础(linux内核源码.树莓派源码编译.SD卡挂载) 树莓派等芯片带操作系统的启动过程 linux内核源码树 Linux内核源代码目录树结构: 树莓派Linux源码配置 ...

  4. 24小时学通Linux内核之构建Linux内核

    今天是腊八节,说好的女票要给我做的腊八粥就这样泡汤了,好伤心,好心酸呀,看来代码写久了真的是惹人烦滴,所以告诫各位技术男敲醒警钟,不要想我看齐,不然就只能和代码为伴了的~~话说没了腊八粥但还是有代码, ...

  5. xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持

    Xmake 是一个基于 Lua 的轻量级跨平台构建工具. 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时. 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLis ...

  6. 实验:构建第一个Docker镜像

    文章目录 概述 寻找和准备镜像 寻找镜像模板 准备镜像模板 Dockerfile 打包容器并上传到仓库 把容器打包成镜像 把镜像上传到公网 参考文章和链接 概述   docker的关键作用:可靠地重现 ...

  7. java写linux内核,基于mykernel 2.0编写一个操作系统内核

    一.实验要求 1.按照https://github.com/mengning/mykernel 的说明配置mykernel 2.0,熟悉Linux内核的编译: 2.基于mykernel 2.0编写一个 ...

  8. Java 离 Linux 内核有多远?

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料!  来源 | 公众号「开源中国」 在往期的文章中,给大家分 ...

  9. Linux 内核PCI去除一个设备

    一个 PCI 可用多个不同的方法被从系统中去除. 所有的 card-bus 设备在一个不同的物 理因素上是真正的 PCI 设备, 并且内核 PCI 核心不区分它们. 允许在机器运行时加减 PCI 设备 ...

最新文章

  1. TinyCrayon-iOS-SDK:强大到使人惊讶的 Mask 及切图工具库
  2. Ejabberd源码解析前奏--配置
  3. Python库cx_orcal 在64位win7上的安装记录
  4. 20145202 《信息安全系统设计基础》第8周学习总结
  5. Canal Adapter二次开发,实现MySQL实时同步到Redis
  6. bootstrap bootstraptable 固定列_1个Excel公式按条件自定义格式显示固定电话号码
  7. java学习(45):无参无返回
  8. 2021天猫双11:阿里巴巴业务已全部跑在阿里云上
  9. oracle批量文件入库,C++ Oracle批量高效入库
  10. C++ const,static,inline
  11. Linux进程的管理与调度(一)--- Linux进程描述符task_struct结构体详解
  12. Linux系统的镜像文件iso下载地址
  13. 从入门到精通零知识证明与zkSNARK
  14. [问题已处理]-centos7 history命令没有任何记录
  15. JavaScript重写alert方法
  16. CSS的repeating-radial-gradient()属性-径向渐变
  17. 《Question Answering on Freebase via Relation Extraction and Textual Evidence》
  18. STM32学习之路——麒麟座V3.2开发板蜂鸣器发声问题
  19. 玩转外贸LinkedIn必备的三大特质,以及突破六度人脉技巧
  20. 如把联想电脑计算机图标放在桌面上,桌面无“我的电脑”图标

热门文章

  1. python 图像识别_AI场景,3步懂图像识别产品
  2. 趣味java_java-趣味算法
  3. f score matlab,机器学习中如何用F-score进行特征选择
  4. python 短视频_短视频篇 | Python 带你进行短视频二次创作
  5. [JLOI 2016]成绩比较
  6. I学霸官方免费教程二十八:Java排序算法之选择排序和冒泡排序
  7. python ghost.py使用笔记
  8. App设计之路——WebApp浅谈
  9. ASP.NET MVC 3—一切的开始MvcHandler、MvcHttpHandler
  10. Anti-alias的前世今生(二):Post process based AA