用Dockerfile 构建一个java的编译环境
1、包括以下软件包
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的容器里面。
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
主要介绍了docker 的java编译环境构建详细介绍的相关资料,具有一定的参考价值,需要的朋友可以参考下
目前 Java 语言的版本很多...我们可以采用两种方式来构建 java 的开发环境,一种是在容器内编译运行,一种是在容器外编译运行,下面分别来看看具体如何操作。 准备工作:首先确保已经安装了 Docker ,如果方便可以提前
构建过程通常包括将源代码编译成可执行文件,然后创建一个新的Docker镜像,这个镜像包含了运行Java应用所需的所有文件和依赖。 对于需要打包成Docker镜像的Java应用来说,了解如何选择合适的Java基础镜像是非常重要...
通过执行Dockerfile中的指令,可以构建出一个包含Java运行环境的Docker镜像。 接下来是README.md文件,它是项目文档的标准格式文件。在这个文件中,开发者会提供关于如何安装和运行Java应用的详细步骤,以及可能...
Belle-SIP 是 Linphone 依赖的一个库,用于处理 SIP 协议。 1. **安装依赖库** - 使用 `sudo apt-get install libantlr3c-3.2` 和 `sudo apt-get install antlr3` 安装必要的库。 2. **构建与安装 Belle-SIP** ...
Docker镜像是一种轻量级、可执行的独立软件包,包含了运行某个软件所需的所有内容,可以看作是一个包含运行环境和配置的“集装箱”。其中,Java开发工具包(JDK)是开发Java应用程序不可或缺的环境,而JDK 17作为...
安装好Docker后,用户可以通过Dockerfile来构建一个包含所需Java环境的镜像。 一个基本的Dockerfile内容可能包括: 1. 拉取一个基础镜像,通常是Linux发行版,例如Ubuntu或者CentOS。 2. 安装JDK,可以通过运行安装...
容器启动速度快,属于秒级别,资源占用少,性能损耗小,因为它们在操作系统级别进行虚拟化,更轻量,共用一个内核和共享应用程序库,对系统的利用率高。 在Java应用中,Docker的使用能大幅提高应用的可移植性和部署...
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。Jenkins 可以自动化 Java 项目的编译、测试和发布过程。 ...
当我们提到“openjdk11 docker 离线包”,这通常意味着一个包含OpenJDK 11版本的Java运行时环境和可能的附加库,这些都被打包在一个Docker镜像中,且该镜像是在没有互联网连接的情况下可以使用的。离线包解决了一些...
基于Spring Cloud、RabbitMQ和Docker的Java在线判题系统代码沙箱设计源码项目是一个以Java语言为核心,结合Spring Cloud微服务架构、RabbitMQ消息队列技术、以及Docker容器技术的在线编程判题系统。该项目能够为编程...
Java Web应用的容器化部署已经成为当前开发和运维管理的主流趋势之一,Docker作为一个强大的容器化平台,极大地简化了应用的部署流程和运维工作。本文详细介绍了使用Docker进行Java Web应用的容器化部署的实战流程,...
在没有Docker/Containerd等容器引擎环境下构建简单镜像,兼容 Dockerfile 大部分配置项,降低上手难度,支持 OCI 和 Docker 镜像格式,并支持互相转换,支持镜像Pull和Push时使用 socks5/http 代理,一个单独的二...
描述中提到“在ubuntu 10.04下编译JAVA可用的GDAL 1.6”,这涉及到一个关键步骤——GDAL的编译和Java绑定。首先,你需要安装GDAL的源代码,并在Ubuntu 10.04上配置、编译和安装。这个过程中可能需要用到诸如`...
在当前的软件开发环境中,自动化构建和部署是一个重要的环节,可以大幅度提升开发效率和代码质量。特别是在容器化技术日益流行的背景下,Jenkins作为一个开源的自动化服务器,已经成为持续集成和持续部署(CI/CD)的...
Docker 是一个容器化技术,提供了一个轻量级的虚拟化解决方案,使得开发者可以快速地构建、部署和管理应用程序。 Docker 允许开发者将应用程序打包到一个容器中,并在任何支持 Docker 的环境中运行。 在自动化部署...
1. **Java编译**:Java程序在运行前需要通过Java编译器(javac)将源代码(.java文件)转换成字节码(.class文件)。这个过程叫做JVM(Java虚拟机)可理解的中间表示形式。编译器会检查源代码的语法和类型,并生成...
3. **构建Docker镜像**:对于不使用docker-compose的情况,开发者需要手动编写Dockerfile。Dockerfile是一个文本文件,包含了所有创建Docker镜像所需的命令和参数。通常,一个基本的Dockerfile可能包含以下命令: ...
在当前目录中生成可执行文件 docker run -ti -v $(pwd):/build sillelien/cyborg-builder:0.1 从当前目录构建Docker映像这会基于在当前目录中构建一个有效的Docker映像-因此它们很小。 docker run -ti -v /var/run/...