在IDEA中使用Docker部署SpringBoot项目

简介: 在IDEA中使用Docker部署SpringBoot项目

IDEA连接Docker


安装docker插件


1.png


配置docker仓库URL


2.png


搭建项目


代码下载


Demooo/springboot-demo-docker at master · cbeann/Demooo · GitHub


创建SpringBoot项目并且创建一个接口


@GetMapping("/hello")
  public String hello() {
    String s = LocalDateTime.now().toString();
    return s;
  }


修改pom.xml


<properties>
        <!--设置时间戳-->
        <maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
        <!--设置docker image 前缀-->
        <docker.prefix>mydocker</docker.prefix>
    </properties>
<!-- docker插件 -->
            <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>${docker.prefix}/${project.artifactId}_${maven.build.timestamp}</imageName>
                    <!-- docker远程服务器地址 -->
                    <dockerHost>http://127.0.0.1:2375</dockerHost>
                    <!--设置目录,该目录下放dockerfike-->
                    <dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>


编写dockerfile


在/src/main/docker目录下,该位置在pom中已经设置


#指定基础镜像,在其上进行定制
FROM java:8
#维护者信息
MAINTAINER cbeann <cbeann@163.com>
#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /tmp 中写入的信息都不会记录进容器存储层
VOLUME /tmp
#复制上下文目录下的target/springboot-demo-docker-0.0.1-SNAPSHOT.jar 到容器里
COPY springboot-demo-docker-0.0.1-SNAPSHOT.jar demo-1.0.0.jar
#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8080
#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","demo-1.0.0.jar"]


运行maven的package


此处已经在pom中把bulid image与mvn package做了关联,即运行package也运行构建镜像命令


3.png


运行结果


4.png


5.png


遇到的坑


IEDA连接远程docker仓库失败


0)确保2375端口开放

1)修改/usr/lib/systemd/system/docker.servic

2)修改ExecStart行为下面内容


ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock


3)加载docker守护线程


systemctl daemon-reload


4)重启docker


systemctl restart docker


目录
相关文章
|
11月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
725 3
|
11月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
1031 2
|
11月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
1029 2
|
11月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
551 2
|
11月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
395 0
|
11月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
812 0
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
308 0
|
Java 程序员 缓存
SpringBoot项目在IntelliJ IDEA中实现热部署
spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。
1686 1
|
Java
SpringBoot+IDEA热部署
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82766889 ...
1330 0
|
Java 缓存 Web App开发
SpringBoot项目在IntelliJ IDEA中实现热部署
spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。
5172 0

热门文章

最新文章