使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)

使用idea打包项目为镜像并发布到docker上运行

一、配置Linux系统上的docker

1.1 修改文件

修改文件:vi /lib/systemd/system/docker.service,将第五行改为:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

注意这里的端口是2375,一会连接的时候会用到
使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第1张图片

1.2 重新加载配置文件 重启docker服务

//重新加载服务的配置文件
systemctl daemon-reload

//重启docker服务以下两个命令任意选一个
//命令1
service docker restart
//命令2
systemctl restart docker

二、配置IDEA Docker integration插件

2018以上版本的IDEA 已经自带了Docker integration 插件,如果没有就去下载一下这个插件

使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第2张图片

在Setting设置中搜索 “ docker” 在箭头4框内输入自己服务器的ip加给docker配置的端口,并且箭头5位置出现该提示则代表成功!

成功后直接apply

使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第3张图片
直接点击这里连接到远程服务器上的docker

三、配置项目

3.1置需要打包成docker镜像的Maven项目的POM.XML文件

 	<properties>
        <java.version>1.8java.version>
         
        <docker.image.prefix>lilinjiangdocker.image.prefix>
    properties>

    <build>
        <plugins>
            
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
            
            
            <plugin>
            	
                <groupId>com.spotifygroupId>
                <artifactId>docker-maven-pluginartifactId>
                <version>1.0.0version>
                <configuration>
                    
                    <imageName>${docker.image.prefix}/${project.artifactId}imageName>
                    
                    <imageTags>
                        <imageTag>latestimageTag>
                    imageTags>
                    
                    <baseImage>java:8baseImage>
                    
                    <maintainer>lilinjiangmaintainer>
                    
                    <workdir>/ROOTworkdir>
                    
                    <cmd>["java","-version"]cmd>
                    <entryPoint>["java","-jar","${project.build.finalName}.jar"]entryPoint>
                    
                    <dockerHost>http://xxx.xxx.xxx:2375dockerHost>
                    
                    <resources>
                        <resource>
                            <targetPath>/ROOTtargetPath>
                            
                            <directory>${project.build.directory}directory>
                            
                            <include>${project.build.finalName}.jarinclude>
                        resource>
                    resources>
                configuration>
            plugin>
        plugins>
    build>

3.2 通过Maven 清理 并 打包

使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第4张图片

四、构建docker镜像

4.1 准备工作

1、 需要配置 maven 环境变量 否则将无法使用maven命令

2、 给maven中添加docker-maven-plugin的白名单,在pluginGroups节点中添加如下代码。(直接搜索关键字找到!!!!)

com.spotify

3、可能会用到的baseImg镜像依赖(打包时会自动下载jdk依赖,若未自动下载请手动拉取下列镜像任意一个即可)


docker pull openjdk:8u191-jdk-alpine3.9

docker pull openjdk:8-jdk-alpine

4.2 构建

1、在你要构建的项目上右键开启命令行

使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第5张图片

2、在打开的命令行中输入一下命令

mvn docker:build

使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第6张图片

然后我们就能在docker中看到生成的镜像了
使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第7张图片

4.3 配置运行容器

使用idea打包项目为镜像并发布到docker上运行(Spring Boot项目为例)_第8张图片

右键镜像选择 create container 填写上面信息 做好端口映射run 运行即可

五、问题

如果项目是SpringBoot多模块项目,那么直接点package可能会出现找不到依赖jar问题

如 A模块依赖了B模块的jar包;

我们只需要先将B模块通过mvn install,将B模块的jar安装在本地的Repository中;

然后再执行A模块的mvn package命令

你可能感兴趣的:(docker,maven)