docker第三天: 构建centos7+java8+maven+git环境

配置环境

通过学习docker,来编写Dockerfile来构建java的环境

centos的image构建

直接使用docker hub的centos镜像

java8的image

基于上面的centos的镜像构建

首先来看看编写的Dockerfile

FROM centos

MAINTAINER Dragon Long "dragonlong1986@126.com"
ADD jdk-8u144-linux-x64.tar.gz /usr/local

RUN \
  mkdir -p /usr/lib/jvm && \
  mv /usr/local/jdk1.8.0_144  /usr/lib/jvm/java-8-oracle && \
  update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-8-oracle/bin/java 300 && \
  update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-8-oracle/bin/javac 300

#环境变量
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle/

首先下载 jdk-8u144-linux-x64.tar.gz 作为jdk的包,
接着通过ADD命令添加到docker容器
然后通过执行RUN命令,创建目录,然后把jdk移到固定的目录,然后用update-alternatives创建来维护系统命令java和javac的符号链接
最后通过ENV来设置环境变量

最后通过 docker build -t jdk8:v1 . 来进行build

maven的image

基于上面的jdk8来进行构建maven的镜像

所编写的Dockfile

FROM jdk8:v1

MAINTAINER Dragon Long "dragonlong1986@126.com"

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

RUN \
  mkdir -p /usr/lib/maven && \
  mkdir -p /root/.m2 && \
  mv /usr/local/apache-maven-3.5.0  /usr/lib/maven/apache-maven-3.5.0 && \
  update-alternatives --install /usr/bin/mvn mvn /usr/lib/maven/apache-maven-3.5.0/bin/mvn 300

COPY settings.xml /root/.m2/settings.xml
ENV M2_HOME /usr/lib/maven/apache-maven-3.5.0

步骤和上面的差不多,下载maven安装包,安装maven,然后设置maven的settings.xml文件,最后设置环境变量,再通过 docker build -t maven:v1 . 来进行build。

验证

通过命令 docker images 来查看镜像
然后通过 docker run -it --rm maven:v1 bash 启动并且进入到容器,然后执行 mvn -version 来检验maven是否安装成功

git-client的image

基于上面的maven来构建git-client的镜像

先上Dockerfile的代码

FROM maven:v1
MAINTAINER Dragon Long, dragonlong1986@126.com

# Upgrading system
RUN \
    yum -y install git && \
    yum clean all

直接使用yum来进行安装git,然后清除掉yum,然后通过 docker build -t git:v1 .来构建镜像。

最后可以启动在git构成的image的容器,通过git命令来进行代码的clone和编译。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Docker — 云时代的程序分发方式 要说最近一年云计算业界有什么大事件?Google Compute Engi...
    ahohoho阅读 15,774评论 15 147
  • 0. 前言 docker是什么?docker是用GO语言开发的应用容器引擎,基于容器化,沙箱机制的应用部署技术。可...
    sessionboy阅读 9,317评论 2 49
  • docker基本概念 1. Image Definition 镜像 Image 就是一堆只读层 read-only...
    慢清尘阅读 12,876评论 1 21
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,296评论 19 139
  • 我想站在闸口前面跺着脚期待你的出现 我想成为你归来第一个紧紧拥抱的人 我想你跟我说 你回来吧,...
    ZYBMAN阅读 1,292评论 0 0

友情链接更多精彩内容