IDEA中一键部署SpringBoot项目到Docker

摘要:
--将插件绑定到包的阶段。也就是说,用户只需要执行mvn包,就会自动执行mvn locker:build--˃packagebuildgaox/${project.authenticationId}http://192.168.56.104:2375/˂!
一、修改配置文件,打开2375端口
[root@microservice ~]# vim /usr/lib/systemd/system/docker.service
在ExecStart=/usr/bin/dockerd 后面加上-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock 
重新加载配置文件和启动:
systemctl daemon-reload
systemctl start docker
二、idea安装docker插件(Docker integration)并配置

IDEA中一键部署SpringBoot项目到Docker第1张

 插件安装完成重启idea后可以看到底部多了个docker标志

IDEA中一键部署SpringBoot项目到Docker第2张

三、编写DockerFile(放在根目录下)
#使用jdk8作为基础镜像
FROM java:8
#指定作者
MAINTAINER gaox
#暴露容器的8088端口
EXPOSE 8089
#将复制指定的xxl-job-admin-2.1.0.jar为容器中的job.jar,相当于拷贝到容器中取了个别名
ADD target/xxl-job-admin-2.1.0.jar /job.jar
#创建一个新的容器并在新的容器中运行命令
RUN bash -c 'touch /job.jar'
#设置时区
ENV TZ=PRC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#相当于在容器中用cmd命令执行jar包  指定外部配置文件
ENTRYPOINT ["java","-jar","/job.jar","--spring.config.location=/usr/local/project/docker/xxl-job/config/application.yml"]

IDEA中一键部署SpringBoot项目到Docker第3张

 方法一:不配置maven,创建镜像的同时启动镜像

 IDEA中一键部署SpringBoot项目到Docker第4张

 IDEA中一键部署SpringBoot项目到Docker第5张

命令解释:

    • Image tag : 指定镜像名称和tag

    • Bind ports : 绑定宿主机端口到容器内部端口。格式为[宿主机端口]:[容器内部端口]

    • Bind mounts : 将宿主机目录挂到到容器内部目录中。
      格式为[宿主机目录]:[容器内部目录]。这个springboot项目会将日志打印在容器 /usr/local/project/docker/xxl-job-admin 目录下,将宿主机目录挂载到容器内部目录后,那么日志就会持久化容器外部的宿主机目录中。

IDEA中一键部署SpringBoot项目到Docker第6张
 
方法二:配置maven,打包即创建镜像,然后手动添加容器
IDEA中一键部署SpringBoot项目到Docker第7张IDEA中一键部署SpringBoot项目到Docker第8张
  <!--使用docker-maven-plugin插件-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>

                <!--将插件绑定在某个phase执行-->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--将插件绑定在package这个phase上。也就是说,用户只需执行mvn package ,就会自动执行mvn docker:build-->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!--指定生成的镜像名,前面的那个名字你随便改,后面的引用,不能动-->
                    <imageName>gaox/${project.artifactId}</imageName>
                    <!--指定标签,也就是版本号,可以自定义-->
                    <imageTags>
                        <imageTag>v1.5</imageTag>
                    </imageTags>
                    <!-- 指定 Dockerfile 路径-->
                    <dockerDirectory>${project.basedir}</dockerDirectory>

                    <!--指定远程 docker api地址 也就是服务器ip+docker的端口号-->
                    <dockerHost>http://192.168.56.104:2375</dockerHost>

                    <!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路径  此处配置的 即对应 target 目录-->
                            <directory>${project.build.directory}</directory>
                            <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
View Code

 IDEA中一键部署SpringBoot项目到Docker第9张

如图所示配置好容器名称,绑定端口号,点击apply,然后点击run,就能正常启动镜像的容器了

 IDEA中一键部署SpringBoot项目到Docker第10张

 

免责声明:文章转载自《IDEA中一键部署SpringBoot项目到Docker》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java后台转json、转对象、转list集合wireshark筛选器汇总下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MLflow系列3:MLflow项目

英文链接:https://mlflow.org/docs/latest/projects.html 本文链接:https://www.cnblogs.com/CheeseZH/p/11945432.html MLflow项目是一种用于以可复用可复现的方式打包数据科学代码的格式。项目的组件包含了API和命令行工具,可以用来在一个工作流中链接多个项目。 概览...

docker下安装mysql镜像

一、拉取mysql镜像 docker pull mysql 二、启动容器,并把配置文件和数据文件挂在到本地磁盘,MYSQL_ROOT_PASSWORD:配置root默认密码 docker run -di --name mysql -p 3306:3306 -v D:mysqlconf:/etc/mysql/conf.d -v D:mysqldata:/va...

使用docker搭建nfs实现容器间共享文件

首先介绍下今天的两个主角:nfs和docker nfs 是什么 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 摘自百度百科 docker...

docker打开api remote接口设置

前言 本文记录docker怎么打开api remote接口设置,docker的版本更新太快了,不同的版本之间,设置可能不同,本文是针对docker13.1 1、 查看配置文件位于哪里systemctl show --property=FragmentPath docker 2、编辑配置文件内容,接收所有ip请求vim /lib/systemd/sys...

API文档管理平台

一、应用场景 在公司中,有很多开发,每个人维护的api接口是不一样的。如果有一个统一的api文档管理平台,每个开发,把自己维护的接口录入进去。 之后再开发别的功能时,不需要重复造轮子,直接调用就可以了。有新员工入职时,也可以快速上手! 关于api文档管理,网上有很多。有在线收费的,也有开源的。基于节省成本考虑,这里主要介绍2个开源工具:ShowDoc和YA...

在Windows中玩转Docker Toolbox(镜像加速)

http://www.cnblogs.com/studyzy/p/6113221.html 最近在研究虚拟化,容器和大数据,所以从Docker入手,下面介绍一下在Windows下怎么玩转Docker。 Docker本身在Windows下有两个软件,一个就是Docker,另一个是Docker Toolbox。这里我选择的是Docker Toolbox,为什...