git maven 一键部署_Docker+JDK+Git+Maven集成一键部署应用环境

本文介绍了如何使用Dockerfile构建一个集成Git、Maven和JDK的一键部署应用环境。通过Dockerfile,将应用程序代码、Maven离线包、JDK1.8安装到CentOS基础镜像中,实现自动化构建和打包。尽管代码保存在本地,但也可以通过修改Dockerfile实现从公网Git仓库拉取代码的功能。
摘要由CSDN通过智能技术生成

做应用开发的同学应该都使用过Jenkins自动化部署工具,它的原理其实就是 Git拉取代码+Maven环境构建+sh启动脚本,当然笔者是简单列举一下其大概原理,我们还可以配置比较复杂的功能。

这篇文章分享如何使用Dockerfile构建自动化部署环境的Docker镜像

准备工作

Docker 本地或服务器需要安装好Docker

Maven离线包

Maven有关的setting文件

JDK1.8离线包

deea7d429b4bc7e1976df6eaf11578ee.png

整体思路

集成一键部署应用环境的整体思路其实和Jenkins的方式大致一样,不过此次分享的应用程序代码是保存在本地,其实如果业务代码是保存在公网的git上,在Dockerfile中完全可以指定git pull的地址,实现与Jenkins相同的功能(笔者的业务代码是放在内网上,所以选择本地打包)。

Dockerfile

FROM centos:latest

#基础依赖

RUN yum -y install zip unzip

RUN yum -y install vim

# 应用环境变量

ENV APP_NAME=docker-maven-test

ENV APP_HOME=/home/admin/docker-maven-test

ENV JAR_FILE=docker-maven-test-1.0.0

# 将构建出的主包复制到指定镜像目录中

RUN groupadd admin && \

useradd admin -g admin && \

mkdir -p /home/admin/$APP_NAME/logs /home/admin/$APP_NAME/bin /home/admin/$APP_NAME/target /home/admin/$APP_NAME/target/lib

#jdk1.8环境

RUN mkdir /usr/local/java

ADD soft/jdk-8u202-linux-x64.tar.gz /usr/local/java/

RUN ln -s /usr/local/java/jdk1.8.0_202 /usr/local/java/jdk

ENV JAVA_HOME /usr/local/java/jdk

ENV JRE_HOME ${JAVA_HOME}/jre

ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib

ENV PATH ${JAVA_HOME}/bin:$PATH

#准备自动构建打包环境

COPY soft/apache-maven-3.3.9-bin.tar.gz /home/admin/$APP_NAME/bin/

RUN tar xzvf /home/admin/$APP_NAME/bin/apache-maven-3.3.9-bin.tar.gz

RUN rm -f /home/admin/$APP_NAME/bin/apache-maven-3.3.9-bin.tar.gz

COPY soft/settings.xml /root/.m2/

RUN cp -R apache-maven-3.3.9 /usr/local/bin

RUN export PATH=apache-maven-3.3.9/bin:$PATH

RUN export PATH=/usr/local/bin/apache-maven-3.3.9/bin:$PATH

RUN ln -s /usr/local/bin/apache-maven-3.3.9/bin/mvn /usr/local/bin/mvn

#应用工作空间

WORKDIR /build/

COPY pom.xml /build/

#如果应用代码在公网,可以使用git clone 将项目克隆下来,再次copy

COPY docker-maven-test /build/docker-maven-test/

RUN mvn -q clean package -Dmaven.test.skip=true

#拷贝应用包

RUN cp /build/docker-maven-test/target/$JAR_FILE.jar /home/admin/$APP_NAME/target/$APP_NAME.jar

#设置系统编码

RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8

ENV TZ=Asia/Shanghai

ENV LC_ALL zh_CN.UTF-8

# 复制脚本文件

COPY docker-maven-test/start.sh /home/admin/$APP_NAME/bin/

# 切换工作空间

WORKDIR /home/admin/$APP_NAME/

RUN chmod -R a+x /home/admin/$APP_NAME/bin/*.sh && \

chown -R admin:admin /home/admin/*

# 运行jar包

ENTRYPOINT ["java","-jar","docker-maven-test-1.0.0.jar"]

运行

将上述编写好的Dockerfile尽量放在应用代码的根目录(如果需要拷贝本地工程),因为这样Docker才可以在上下文中找到对应的程序代码,进行后续操作。运行如下命令即可一键打包

//命令中的"."表示当前目录下的Dockerfile

docker build -t docker-maven-test .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值