Spring Boot入门系列之:四、Spring Boot整合docker

Docker 安装 Redis + Spring Boot 整合 Redis Docker安装Redis 一、启动docker容器 systemctl start docker 二、拉取redis镜像 docker pull redis 三、端口映射 docker run --name redis -p 6379:6379 -d redis 四、启动redis docker start redis 五、查询ip ip addr 六、连接redis Spring... 阅读详情

spring-boot-docker

开发环境

开发工具: Intellij IDEA 2018.2.6

springboot: 2.0.6.RELEASE

jdk: 1.8.0_192

maven: 3.6.0

docker: Docker Engine - Community 18.09.0

搭建项目

由于使用了 Spring Cloud 的Eureka所以加了 eureka 的依赖,基本不需要多加额外的配置

  • pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <artifactId>spring-boot-docker</artifactId>
    <groupId>com.andy</groupId>
    <version>1.0.7.RELEASE</version>

    <packaging>jar</packaging>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.spring.platform</groupId>
                <artifactId>platform-bom</artifactId>
                <version>Cairo-SR5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <properties>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <docker.image.prefix>andy</docker.image.prefix>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

    </dependencies>

    <build>
        <finalName>spring-docker</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.3.RELEASE</version>
                <configuration>
                    <!--<mainClass>${start-class}</mainClass>-->
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <baseImage>java</baseImage>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

</project>

  • application.yml
server:
  port: 8761
  servlet:
    path: /
spring:
  application:
    name: spring-eureka-docker
eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    serviceUrl:
      defaultZone: http://localhost:8761/eureka

  • 启动类
/**
 * <p>
 *
 * @author Leone
 * @since 2018-03-06
 **/
@EnableEurekaServer
@SpringBootApplication
public class DockerApplication {
    public static void main(String[] args) {
        SpringApplication.run(DockerApplication.class, args);
    }
}
  • Dockerfile

在src/main/docker目录下(没有则创建此目录)创建Dockerfile文件然后把maven编译后的jar文件拷贝到和Dockerfile同级的目录

# 基于哪个镜像
FROM java:8

# 将本地文件夹挂载到当前容器
VOLUME /tmp

# 维护者信息
MAINTAINER leone "exklin@gmail.com"

# 拷贝文件到容器
ADD spring-docker.jar eureka.jar

# 执行命令
RUN bash -c 'touch eureka.jar'

# 声明端口
EXPOSE 8761

# 配置容器启动后执行的命令
ENTRYPOINT ["java","-jar","-Djava.security.egd=file:/dev/./urandom","eureka.jar"]

安装 idea Docker 插件后需要在 windows 下安装 Docker 在docker 插件的 Deploy configuration 里面配置 docker 容器参数之后 点击Run后就会顺序执行 Dockerfile 里面的命令就会启动这个docker容器。打开浏览器访问http://localhost:8761,传送门

Spring Boot与Docker部署 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 阅读详情

相关推荐

Spring Boot整合mybatis和扩展SpringMVC,整合SpringData JPA

1、Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 单体应用:ALL IN ONE 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元; 详细参照微服...

weixin_44019182的博客 1825

Spring Boot系列第五篇:Spring Boot与Docker

文章目录一、简介二、核心概念1、使用Docker的步骤2、安装Docker3、Docker常用命令&操作 一、简介 Docker是一个开源的应用容器引擎、是一个轻量级容器技术 Docker支持软件编译成一个镜像、然后在镜像中各种软件做好配置、将镜像发布出去、其他使用者可以直接使用这个镜像 运行中的镜像称为容器、容器启动是非常快速的 二、核心概念 docker主机(Host):安装了Docker程序的机器(Docker直接安装在操作系统之上) docker客户端(Client):连接docker

qq_29445811的博客 5458

Docker Compose: Spring Boot and PostgreSQL

基於上述程式碼庫,我們將 {Spring Security 和 JJWT 實現 Spring Boot Token 的身份驗證} 專案放在 jwtauth 資料夾中,無需使用 resources/application.properties 檔案。這是因為環境變數將會被匯出到 .env 檔案中。建立 Spring Boot 應用程式的 Dockerfile,將該檔案放在 jwtauth 資料夾中。Dockerfile % docker image build -t jwtauth-app . --n

2301_78959703的博客 1098

SpringBoot(五) Docker

docker

qq_38618691的博客 696

Spring Boot进阶(96):轻松上手:实战Spring Boot整合Docker

轻松上手:实战Spring Boot整合Docker。

**My Coding Family** 3427

spring boot3整合Elasticsearch 实现快速入门

Elasticsearch是非常强大的一个开源的分布式搜索和分析引擎,是一个Nosql数据库,可以帮助我们从海量数据中快速找到需要的内容。以传统的MySQL数据库为例,要查询一条数据信息,通常是先找到这个数据的id,在顺应的找到这个数据,那么这样就是正向索引或者说普通索引如(select * from user where title like '%手机%')这条查询语句会在user表中,逐条的查看数据,看相应的数据是否符合条件。

2301_78646673的博客 3273

SpringBoot整合DockerClient

SpringBoot整合DockerClient 应用场景 提供Docker提供可视化操作界面,更加方便运维、开发人员管理docker镜像、容器。 DockerClient选择 docker-java 开源(源码地址) 版本迭代慢 Docker镜像、容器相关对象、属性未覆盖到,查询出的信息有缺失情况,跟Docker提供的Api文档差别较大 docker-client(我选择的) 开源...

Sir.He的博客 1430

springboot + dockerclient +redis +esclient

利用restful 驱动 docker容器进行数据计算,通过bboss 来操作ES 记录日志,通过redis来任务队列

使用Docker部署SpringBoot项目(避坑+超级详细版本)

愿我们的付出都值得

IT小辉同学 1万+

ZYNQ千兆网UDP通信实战:从Vivado配置到LWIP优化全流程(附避坑指南)

本文详细介绍了在ZYNQ平台上实现千兆以太网UDP通信的全流程,包括Vivado硬件配置、LWIP协议栈优化及实战代码示例。通过关键参数调整和性能优化,系统吞吐量可提升至850Mbps以上,适用于高速网络通信场景。

weixin_29161785的博客 230

LwIP TCP Client 解决长数据发送的困扰

问题描述 LWIP 的 TCP Client 发送数据可以调用 tcp_write() 函数,将数据储存在缓冲区里面,然后等待超时自动发送或者调用tcp_output()函数进行发送。 然而 tcp_write() 函数 需要发送的数据过长时,将无法发送,并返回 ERR_MEM。 tcp_write()函数解析 tcp_write()的函数代码很多,就不细看代码了, 先看tcp_write()的完整函数: err_t tcp_write(struct tcp_pcb *pcb, const void

tiantangmoke的博客 1万+

使用 Docker 部署 Spring Boot 项目

Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...

纯洁的微笑 1万+

AMBA VIP基础使用方式(AXI)

AXI环境配置 1)基础配置 作为master或者slave使用时,对应的is_active = 1 只作为i监测(monitor)使用时,对应slave_cfg的is_active = 0(对应端口连接也有所区别) class smu_axi_cfg extends svt_axi_system_configuration; `uvm_object_utils(smu_aix_cfg) function new(string name="smu_axi_cfg); super.new(n..

qq_37573794的博客 7984

spring boot整合keycloak

要求:spring boot是3.3.1以上的版本(如果你希望用spring boot的更低的版本,只需要修改spring boot项目里面的api,主要是修改Security Config,可以让chatgpt帮你修改)// 从 userRequest 中获取 OIDC ID Token,这里假设它已经包含在 access token response 的附加参数中。我用的是docker(docker运行和把keycloak下载到本地运行都可以,如果发现有问题,一般不会出现在这里)

qq_73992333的博客 2846

便携式水下动态实时视频色彩还原设备,一键快速实现对水下偏色视频和图像的色彩还原处理

便携式水下动态实时视频色彩还原,一键快速对水下图像进行色彩校正,清晰度提升和亮度均衡处理,为水下资源勘探和科学考古,海洋生态环境监测,水下机器作业等应用提供有力的协助

weixin_43518680的博客 633

小案例:利用图床自动化批量上传图片并获取图片链接

用python爬虫写了一个小脚本,用来自动上传图片到图床,然后返回链接,我们只需直接复制链接就可以。(需要安装Requests库) 因为不同图床需要提交的POST表单不一致,所以在这里我用ImgURL图床做示范,如果大家有需求,可自行修改代码。使用脚本的时候,我们只需把需要上传的图片和这个脚本放在同一个文件夹中,然后运行脚本,稍作等待,看到提示时就可以在脚本运行文件夹中发现一个名为“图片链接地址.txt”的文件,里面就是图片链接啦! 四、图片链接地址.txt(单张图片):...

采菊东篱下,Python满乾坤! 4410

Docker部署Elasticsearch和入门整合Spring Boot

包括使用docker部署ES,es入门的基础概念和基础框架,以及Java Spring Boot整合es,基础使用`JavaRestClient`操作索引库和文档,Elasticsearch快速入门Java版笔记是 elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。 Kibana: 数据可视化 Elasticsearch: 存储、计算、搜索数据 Logstash,Beats: 数据抓取............

hrdate(菜菜菜带带带) 2839

(超详细)Scala环境搭建(scala-2.12.15、IDEA2021.1.3)

Scala环境搭建(scala-2.12.15、IDEA2021.1.3) JunLeon——go big or go home 目录 Scala环境搭建(scala-2.12.15、IDEA2021.1.3) 一、Scala概述 1、什么是Scala? 2、Scala发展史 3、Scala与Java的关系 二、Scala环境搭建 1、环境准备 2、Scala安装与配置环境变量 3、验证Scala 三、编写第一个Scala程序 1、使用IDEA创建maven工程 2、.

JunLeon的博客 3万+

Celesto沙箱实战:目录挂载、文件上传与环境变量注入全解

Celesto(celesto)是一款开源的 AI Agent 沙箱工具,它能在约 500 毫秒内为 AI 智能体创建一台轻量虚拟机,作为安全、持久且完全隔离的"计算机"。在真实项目中,你常需要把**本地目录共享进沙箱、上传数据文件、注入环境变量**。本文用最短的路径带你跑通这三大实战操作。 [![Celesto沙箱环境示意图:AI智能体在隔离虚拟机中执行任务](https://raw.gitc

gitblog_00336的博客 1043

AudioTrack音频播放流程深度解析

深入解析Android AudioTrack音频播放的完整链路:从Java API到Native层,从共享内存Ring Buffer机制到FAST Track低延迟优化,配合源码分析带你彻底搞懂Android音频播放的底层原理

Cheson的专栏 940

【ESP32接入国产大模型之Deepseek】

🥳🥳🥳现在,我们在本教程中,您学习了如何使用ESP32接入语言大模型之Deepseek。🛹🛹🛹从而实现对外部世界进行感知,充分认识这个有机与无机的环境,后期会持续分享esp32跑freertos实用案列🥳🥳🥳科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。🤣🤣🤣如果你有任何问题,可以通过q group(945348278)加入鹏鹏小分队,期待与你思维的碰撞😘😘😘鸣谢B站UP星汇极客ESP32对接DeepSeek API,实现AI大模型交互功能。

vor234的博客 1万+

Spring Boot教程之三十九: 使用 Maven 将 Spring Boot 应用程序 Docker 化

因此,通过这种方式,我们可以使用 Maven 插件将镜像发布到 Docker 容器。最好不要使用本地环境将 docker 镜像上传到任何注册表,使用CI/CD管道或任何工具始终是最佳实践。使用 Maven 将 Spring Boot 应用程序 Docker 化 - 常见问题解答如何将 Maven 项目 Docker化?在项目根目录中创建一个Dockerfile,将应用程序的 JAR 文件复制到Docker 镜像中,并提供在容器内启动应用程序的命令,以便 Docker 化Maven 项目。

潜洋的专栏 1755

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

微服务入门学习教程(Spring Boot+Spring Cloud+Docker)

从传统项目到互联网项目,从单体应用到微服务架构,从人工运维到自动化运维,从物理机房到云服务器再到Serverless,最后留给开发人员的只剩下了业务服务,业务服务的高可用性和可扩展性就成了开发人员能力的考核点,而微服务就是对应的解决方案。

guangcaiwudong的博客 4301

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

四、Spring Boot Docker(基于IDEA部署)

Docker环境搭建起来了,本文将介绍如何使用IDEA将一个工程部署到Docker。 环境:ECS服务器(CentOS7.4),InteliJ IDEA(本地开发) 1. 创建一个springboot工程,引入spring-boot-starter-web 1)pom.xml <?xml version="1.0" encoding="UTF-8"?> <p...

guangcaiwudong的博客 4368

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Spring整合RabbitMQ

超简单!入门级SpringBoot整合RabbitMQ,一看就会!

Mr_yu_shao的博客 3960

保姆级教程:Docker部署Spring Boot + Vue.js项目完整教程(附Gitee源码)

本文详细介绍了使用Docker容器化部署Spring Boot+Vue.js项目的完整流程。内容包括:项目架构说明、环境准备(Docker和Docker Compose安装)、后端配置(数据库连接和Dockerfile编写)、前端配置(Dockerfile和Nginx设置)以及Docker Compose编排配置。通过多阶段构建优化镜像大小,使用Nginx代理API请求,实现前后端分离部署。文末提供了项目源码地址,内含完整Dockerfile和配置示例。

Maolei_NyaRu_的博客 4748
上一篇: linux 详解
下一篇: Spring Boot入门系列之:二、Spring Boot整合JPA
exklin
博客等级 码龄9年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值