我的编程空间,编程开发者的网络收藏夹
学习永远不晚

idea使用docker插件实现一键自动化部署

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

idea使用docker插件实现一键自动化部署

环境:

  • ​ jdk1.8及以上。
  • Maven 3.2+
  • ​ idea
  • ​ docker

一、 docker开启远程连接访问

首先我们要开启docker的远程连接访问。保证不是docker所在的服务器,也能够远程访问docker。

Linux版的docker:

修改docker.service文件,添加监听端口 -H tcp://0.0.0.0:2375


vi /usr/lib/systemd/system/docker.service

找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375,如下图所示

重启docker


 systemctl daemon-reload
 systemctl start docker

如果我们有防火前记得添加防火墙策略或者关闭防火墙。

window版docker

在电脑左下角找到docker图标,鼠标右键选择settings。 将General菜单下的Expose daemon on tcp://localhost:2375 without TLS勾选。无需重启。

安装配置idea的docker插件

在File --> Settings --> Plugins 在输入框中搜索Docker,选择并安装。安装完成后重启Docker。

在这里插入图片描述

配置docker

在File–> Settings–>Build,Execution,Deployment中找到Docker

新建一个docker实例,然后在Engine API URL中将docker所在ip端口号填上,填完如果下面显示Connection successful证明连接docker成功。如果失败,可能是我们上一步docker开启远程连接未成功。

在这里插入图片描述

我们设置完成后,回到idea主界面,可以看到页面下面有一个docker窗口。点击绿色箭头,连接docker。连接上后显示Containers和Images就是我们现在docker中已经有的容器和镜像。

在这里插入图片描述

创建项目,并配置

一 、 创建项目

我就以一个简单的Eureka项目演示。

File–> New -->Project --> Spring Initializr

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、 配置项目

修改pom.xml文件,引入docker-maven-plugin插件相关配置. 改配置在<plugins>标签内


 <!--使用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>${project.artifactId}</imageName>
            <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest-->
            <imageTags>
                <imageTag>latest</imageTag>
            </imageTags>
            <!-- 指定我们项目中Dockerfile文件的路径-->
            <dockerDirectory>${project.basedir}/class="lazy" data-src/main/resources</dockerDirectory>

            <!--指定远程docker 地址-->
            <dockerHost>http://127.0.0.1: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>

配置项目的基本配置。( 这里不是重点,一笔带过)

①修改application.properties,添加项目相关信息。


#项目启动的端口号和IP地址
server.port=9090
eureka.instance.hostname=127.0.0.1

# 是否将其注册到注册中心, 如果不是集群环境,false
eureka.client.register-with-eureka=false
# 是否检索服务,单机情况下为false
eureka.client.fetch-registry=false

eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

② 找到项目启动类,添加@EnableEurekaServer注解


@EnableEurekaServer
@SpringBootApplication
public class EurekaserverApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaserverApplication.class, args);
    }

}

添加Dockerfile文件。

我们在EeurekaServer\class="lazy" data-src\main\resources目录下,添加文件名为Dockerfile的文件。在这里插入图片描述

如果我们docker中没有java:8 这个镜像,请先使用docker pull java:8,将镜像先拉下来。


FROM java:8
VOLUME /tmp
ADD *.jar app.jar
EXPOSE 9090
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar" ]

我们添加了一个VOLUME指向“/ tmp”的内容,因为这是Spring Boot应用程序默认为Tomcat创建工作目录的地方。效果是在“/var/lib/docker”下的主机上创建一个临时文件,并将其链接到“/ tmp”下的容器。对于我们在此处编写的简单应用程序,此步骤是可选的,但如果需要在文件系统中实际编写,则对于其他Spring Boot应用程序可能是必需的。

为了减少Tomcat的启动时间,我们添加了一个指向“/dev/urandom”的系统属性作为熵源。如果您使用Tomcat(或任何其他Web服务器)的“标准”版本,则不需要更新版本的Spring Boot。

maven打包,生成镜像

使用maven打包。我们在pom.xml中配置过,如果我们是用maven的package,那么就会自动使用Dockerfile文件进行构建。

在这里插入图片描述

我们从控制台可以看到,已经给我构建了一个和我们项目名相同的镜像文件。

在这里插入图片描述

我们在docker窗口可以看到,我们的镜像库中多个一个eurekaserver:latest镜像。

在这里插入图片描述

创建容器,项目部署到docker

我们在docker窗口中,找到我们刚才创建的镜像文件,鼠标右键,选择Create container,我们修改创建容器所需要的配置。

在这里插入图片描述

在Create Docker Configuration弹窗中修改Container name(容器名称) Bind ports(Ip和端口映射)

我在这里添加127.0.0.1:8080:9090. 使用本地8080端口,去访问容器的9090.

在这里插入图片描述

我们点击Run之后,就会自动创建容器并启动。

我们可以看到在docker插件中,多出了一个eurekaServer的容器,并且启动成功,端口号为9090.

在这里插入图片描述

访问容器中的项目

我们在前面设置的是使用8080端口,访问容器9090的项目。

我们使用127.0.0.1:8080访问项目,出现如下页面,证明项目启动成功。

在这里插入图片描述

在这里我们基本上已经完成了所有的配置。

修改项目,一键部署

以后,我们启动项目可以按照下图所示,一键启动我们项目就会在docker容器中运行。

在这里插入图片描述

如果我们修改了项目,在使用在docker插件中启动项目,会发现在启动依然还是修改前的项目,因为我们只是启动了容器,并没有将修改后的项目重新打包并生成docker的images。 如果我们想在启动时直接用运行打包并启动项目可以按照下面的操作。

我们修改在前面我们创建的Docker Images 的配置。

在这里插入图片描述

2.在配置启动项中找到Before launch:Activate tool window,在这里我们新增一个Run Maven Gold。

在这里插入图片描述

我们在这里的Command line 中添加一个命令 package。

在这里插入图片描述

配置完成后保存。以后我们启动项目时都会执行maven的package命令,自动将我们打包并把项目生成docker镜像文件启动。

以后,如果我们修改项目后,都可以使用下图所示去启动。 它会自动打包创建docker镜像并启动项目。

在这里插入图片描述

如果我们只需要启动项目,到docker插件窗口,启动对应项目的容器就可以了。

参考

https://www.cnblogs.com/hsz-csy/p/9488469.html

https://spring.io/guides/gs/spring-boot-docker/

到此这篇关于idea使用docker插件实现一键自动化部署的文章就介绍到这了,更多相关idea docker一键自动化部署内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

idea使用docker插件实现一键自动化部署

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux+Docker+SpringBoot+IDEA一键自动化部署的详细步骤

Linux+Docker+SpringBoot+IDEA一键自动化部署的步骤记录从打包到服务器配置上线全流程安装docker 详细步骤请戳这里 用yum源安装用yum源安装 查看是否已安装docker列表yum list installed
2022-06-03

Maven Web项目怎么使用Cargo插件实现自动化部署

这篇文章主要讲解了“Maven Web项目怎么使用Cargo插件实现自动化部署”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Maven Web项目怎么使用Cargo插件实现自动化部署”吧!M
2023-07-05

使用GitHub Actions实现自动化部署

大家在工作中想必都是通过自动化部署来进行前端项目的部署的,也就是我们在开发完某个需求时,我们只需要将代码推送到某个分支,然后就能自动完成部署,我们一般不用关心项目是如何build以及如何deploy的,这就极大得提高了我们的开发效率。

Maven Web项目使用Cargo插件实现自动化部署的详细步骤

cargo,它是一组帮助用户实现自动化部署,操作Web容器的工具,并且几乎支持所有的Web容器,这篇文章主要介绍了Maven Web项目使用Cargo实现自动化部署,需要的朋友可以参考下
2023-02-21

使用Docker Compose、Nginx和MariaDB实现PHP应用程序的自动化部署流程

摘要:本文旨在介绍如何使用Docker Compose、Nginx和MariaDB来自动化部署PHP应用程序。我们将使用Docker Compose来管理容器化的应用程序,并使用Nginx作为反向代理服务器,同时与MariaDB数据库集成。
2023-10-21

Docker助力Linux应用实现应用的自动化部署与测试

Docker是一种开源容器化技术,它允许开发者将应用程序及其所有依赖项打包到一个标准化的容器中,确保应用在任何环境中都能一致运行。以下是Docker助力Linux应用实现应用的自动化部署与测试的相关信息:Docker在自动化部署与测试中的
Docker助力Linux应用实现应用的自动化部署与测试
2024-10-07

怎么使用Jenkins和Git来实现自动化部署

这篇文章主要介绍“怎么使用Jenkins和Git来实现自动化部署”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Jenkins和Git来实现自动化部署”文章能帮助大家解决问题。一、为什么需要自
2023-07-05

详解如何使用Jenkins和Git来实现自动化部署

Jenkins是一款开源的自动化部署工具,它可以通过配置来自动化构建、测试、部署代码等一系列操作。而Git则是一种流行的版本控制工具,能够管理代码的历史变更记录。在软件开发领域中,Jenkins和Git已经成为了必不可少的工具。本文将介绍如
2023-10-22

编程热搜

目录