栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot jenkins docker Dockerfile 打包发布项目

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot jenkins docker Dockerfile 打包发布项目

利用docker 发布镜像,运行项目有两种方式:

1、通过dockerfile,手动编写docker命令  项目代码无侵入式 创建、运行镜像

2、通过插件(maven插件、idea插件)自动打包发布、运行镜像

本文详细介绍第一种使用方式,本文仅供学习,生产环境的使用还需要完善优化。

至于第二中 需要在pom.xml文件中加入docker的plugin的配置

项目环境 springboot + springcloudAlibaba + nacos  maven jenkins docker

1、在项目中创建文件 Dockerfile(名称要一致)

结构如下,也可在其它位置创建此配置文件

 2、配置文件内容如下
#构建镜像的Dockerfile
# 此点网上标注的但自己未理解:注意Dockerfile必须和Jar包在同一路径下(在需要运行的服务器上的路径是一直的)

# FROM 基础镜像必要,代表你的项目将构建在这个基础上面
# From java image, version : 8
FROM java:8

# 挂载app目录   VOLUME 创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。
# VOLUME 指定了临时文件目录为/myDockerTestApp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/myDockerTestApp
VOLUME /myDockerTestApp

#作者名称
MAINTAINER kylin

# 该指令用于指定工作目录
# 使用WORKDIR指令可以来指定工作目录(或称为当前目录),以后各层的当前目录就被改为指定的目录,如该目录不存在,WORKDIR会帮你建立目录。
# 可使用命令: sudo docker exec -it containerID /bin/bash 进入到docker的工作目录
WORKDIR /opt/workspace/kylin-docker/basic-test

# 配置环境变量,可以设置一下配置参数
ENV NACOS_GROUP=ws_basic_test
ENV NACOS_PREFIX=basic_test

##将maven构建好的jar添加到镜像中(前面为打包出的jar包名名(为相对路径,相对Dockerfile文件的路径),,后面任意与上上步执行shell中一致即可)
# 将jar包添加到容器中并更名为basic-1.0.jar(放到docker工作目录中)
#ADD ./target/basic-docker-0.0.1-SNAPSHOT.jar basic-1.0.jar
ADD ./target/basic-docker-0.0.1-SNAPSHOT.jar basic-1.0.jar

# 容器开放端口    EXPOSE 允许指定端口转发
# EXPOSE指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。
#在运行时使用随机端口映射时,也就是docker run -P时,会自动随机映射EXPOSE的端口
EXPOSE 6012

# 容器执行命令  ENTRYPOINT 指定 Docker image 运行成 instance (也就是 Docker container) 时,要执行的命令或者文件。
ENTRYPOINT ["java", "-jar", "-Dfile.encoding=utf-8", "basic-1.0.jar"]

 注:上面配置文件中的环境变量的配置可以设置一些系统的参数如下(和naocs配置文件bootstrap.yml 的参数对应)

3、配置jenkins

 

 注: jenkin的具体相关配置可以查询其它文章,此处不做具体讲解

shell脚本如下(截图中的shell脚本是最简单的构建镜像和启动容器,下面的shell脚本加入了判断,先删除已存在的):

PIDS=`sudo docker ps -q --filter ancestor=basicdocker`
if [ "$PIDS" != "" ]; then
sudo sudo docker rm -f "$PIDS"
sudo docker rmi basicdocker
echo "已关闭存在的容器镜像!"
else
echo "不存在,不执行关闭"
fi
# 删除之前已存在的容器
#sudo docker rm -f $(sudo docker ps -q --filter ancestor=basicdocker) &&
# 删除之前已存在的镜像
#sudo docker rmi basicdocker &&
 sudo docker build -t basicdocker . && sudo docker run -d -p 5012:7012 basicdocker
 
 # 可通过如下命令(-e paramname="value") 在启动容器时 加入参数 
 # NACOS_GROUP 和 dockerfile 中设置的 ENV NACOS_GROUP=ws_basic_test 环境变量相对应
 # sudo docker run -d -p 5012:7012 -e NACOS_GROUP="ws_basic_test" basicdocker 

4、通过docker images 查看镜像

        通过docker ps 查看正在运行的容器

 5、通过docker命令 docker inspect basicdocker  查看 容器的相关配置

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342890.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号