Spring Boot Docker Compose 支持中文文档

本文为官方文档直译版本。原文链接

Spring Boot Docker Compose 支持中文文档

    • 引言
    • 服务连接
    • 自定义镜像
    • 跳过特定的容器
    • 使用特定Compose文件
    • 等待容器就绪
    • 控制 Docker Compose 的生命周期
    • 激活 Docker Compose 配置文件

引言

Docker Compose 是一种流行的技术,可用于为应用程序所需的服务定义和管理多个容器。通常会在应用程序旁边创建一个 compose.yml 文件,用于定义和配置服务容器。
使用 Docker Compose 的典型工作流程是:运行 docker compose up,在应用程序中连接已启动的服务,完成后再运行 docker compose down
Spring-boot-docker-compose 模块可以包含在项目中,为使用 Docker Compose 处理容器提供支持。将模块依赖关系添加到你的构建中,如以下列表中的 Maven 和 Gradle 所示:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-docker-compose</artifactId><optional>true</optional></dependency>
</dependencies>
dependencies {developmentOnly("org.springframework.boot:spring-boot-docker-compose")
}

为了让 Spring Boot 支持正常工作,路径上必须有 docker composedocker-compose CLI 应用程序。

当该模块作为依赖关系包含时,Spring Boot 将执行以下操作:

  • 在应用程序目录中搜索 compose.yml 和其他常见的 compose 文件名
  • 使用发现的 compose.yml 调用 docker compose up
  • 为每个受支持的容器创建服务连接Beans
  • 当应用程序关闭时,调用 docker compose stop

如果启动应用程序时 Docker Compose 服务已在运行,Spring Boot 只会为每个受支持的容器创建服务连接Beans。它不会再次调用 docker compose up,也不会在关闭应用时调用 docker compose stop

默认情况下,运行测试时 Spring Boot 的 Docker Compose 支持是禁用的。要启用它,请将 spring.docker.compose.skip.in-tests 设置为 false

服务连接

服务连接是与任何远程服务的连接。Spring Boot 的自动配置可以获取服务连接的详细信息,并利用它们建立与远程服务的连接。这样做时,连接细节优先于任何与连接相关的配置属性。
使用 Spring Boot 的 Docker Compose 支持时,服务连接会建立到容器映射的端口。

Docker compose 的使用方式通常是将容器内的端口映射到计算机上的临时端口。例如,Postgres 服务器可以使用 5432 端口在容器内运行,但在本地却被映射到一个完全不同的端口。服务连接将始终发现并使用本地映射的端口。

服务连接是通过使用容器的映像名称建立的。目前支持以下服务连接:

Connection DetailsMatched on
ActiveMQConnectionDetails名为 “symptoma/activemq” 的容器
CassandraConnectionDetails名为 “cassandra” 的容器
ElasticsearchConnectionDetails名为 “elasticsearch” 的容器
JdbcConnectionDetails名为 “gvenzl/oracle-free”、“gvenzl/oracle-xe”、“mariadb”、“mssql/server”、"mysql "或 "postgres "的容器
MongoConnectionDetails名为 “mongo” 的容器
Neo4jConnectionDetails名为 “neo4j” 的容器
OtlpMetricsConnectionDetails名为 “otel/opentelemetry-collector-contrib” 的容器
OtlpTracingConnectionDetails名为 “otel/opentelemetry-collector-contrib” 的容器
PulsarConnectionDetails名为 “apachepulsar/pulsar” 的容器
R2dbcConnectionDetails名为 “gvenzl/oracle-free”、“gvenzl/oracle-xe”、“mariadb”、“mssql/server”、"mysql "或 "postgres "的容器
RabbitConnectionDetails名为 “rabbitmq” 的容器
RedisConnectionDetails名为 “redis” 的容器
ZipkinConnectionDetails名为 “openzipkin/zipkin” 的容器

自定义镜像

有时,您可能需要使用自己版本的镜像来提供服务。您可以使用任何自定义镜像,只要其行为方式与标准镜像相同即可。具体来说,标准镜像支持的环境变量也必须在自定义镜像中使用。
如果你的映像使用不同的名称,你可以在 compose.yml 文件中使用一个标签,这样 Spring Boot 就能提供服务连接。使用名为 org.springframework.boot.service-connection 的标签提供服务名称。
例如:

services:redis:image: 'mycompany/mycustomredis:7.0'ports:- '6379'labels:org.springframework.boot.service-connection: redis

跳过特定的容器

如果您在 compose.yml 中定义了一个容器映像,但不想将其连接到您的应用程序,您可以使用标签来忽略它。任何带有 org.springframework.boot.ignore 标签的容器都会被 Spring Boot 忽略。
例如:

services:redis:image: 'redis:7.0'ports:- '6379'labels:org.springframework.boot.ignore: true

使用特定Compose文件

如果编译文件与应用程序不在同一目录下,或者文件名不同,可以在 application.propertiesapplication.yaml 中使用 spring.docker.compose.file 指向不同的文件。属性可以定义为准确的路径,也可以定义为与应用程序相对的路径。
例如:

spring:docker:compose:file: "../my-compose.yml"

等待容器就绪

Docker Compose 启动的容器可能需要一段时间才能完全就绪。检查就绪状态的推荐方法是在 compose.yml 文件的服务定义下添加健康检查(healthcheck)部分。
由于在 compose.yml 文件中省略健康检查(healthcheck)配置的情况并不少见,因此 Spring Boot 也会直接检查服务是否就绪。默认情况下,当 TCP/IP 连接可以建立到映射端口时,容器就被视为就绪。
您可以在 compose.yml 文件中添加 org.springframework.boot.readiness-check.tcp.disable 标签,在每个容器上禁用此功能。
例如:

services:redis:image: 'redis:7.0'ports:- '6379'labels:org.springframework.boot.readiness-check.tcp.disable: true

您还可以在 application.propertiesapplication.yaml 文件中更改超时值:

spring:docker:compose:readiness:tcp:connect-timeout: 10sread-timeout: 5s

整体超时可使用 spring.docker.compose.readiness.timeout 进行配置。

控制 Docker Compose 的生命周期

默认情况下,Spring Boot 会在应用程序启动时调用 docker compose up,在关闭时调用 docker compose stop。如果你希望使用不同的生命周期管理,可以使用 spring.docker.compose.lifecycle-management 属性。
支持以下值:

  • none - 不启动或停止 Docker Compose
  • start-only - 在应用程序启动时启动 Docker Compose 并让它继续运行
  • start-and-stop - 应用程序启动时启动 Docker Compose,JVM 退出时停止 Docker Compose

此外,你还可以使用 spring.docker.compose.start.command 属性来更改是使用 docker compose up 还是 docker compose start。通过 spring.docker.compose.stop.command 属性,你可以配置是使用 docker compose down 还是 docker compose stop
下面的示例显示了如何配置生命周期管理:

spring:docker:compose:lifecycle-management: start-and-stopstart:command: startstop:command: downtimeout: 1m

激活 Docker Compose 配置文件

Docker Compose 配置文件与 Spring 配置文件类似,可以让你针对特定环境调整 Docker Compose 配置。如果要激活特定的 Docker Compose 配置文件,可以在application.propertiesapplication.yaml 文件中使用 spring.docker.compose.profiles.active 属性:

spring:docker:compose:profiles:active: "myprofile"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229635.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

黑马头条--day02--2文章详情

一.上传之前的配置 1.上传js和css文件 在minio中创建leadnews桶&#xff0c; 在leadnews下面创建/plugins目录&#xff0c;在该目录下面分别创建js和css目录, 也就是/plugins/css和/plugins/js,向css中上传以下index.css: html {overflow-x: hidden; }#app {position: rel…

GPT实战系列-探究GPT等大模型的文本生成

GPT实战系列-探究GPT等LLM文本生成 GPT专栏文章&#xff1a; GPT实战系列-Baichuan2等大模型的计算精度与量化-CSDN博客 GPT实战系列-GPT训练的Pretraining&#xff0c;SFT&#xff0c;Reward Modeling&#xff0c;RLHF-CSDN博客 GPT实战系列-ChatGLM3本地部署CUDA111080Ti…

kali虚拟机无网络

1.查看虚拟机的网卡模式 在虚拟机设置里&#xff0c;一般选择桥接模式&#xff0c;也可以选择NAT模式。 2、你的IP地址是否写死了&#xff08;设置为静态IP&#xff09; vim编辑模式下的命令&#xff1a; 按a或i进入编辑模式&#xff0c;然后按esc键退出编辑模式&#xff0c;s…

LV.13 D5 uboot概述及SD卡启动盘制作 学习笔记

一、uboot概述 1.1 开发板启动过程 开发板上电后首先运行SOC内部iROM中固化的代码(BL0)&#xff0c;这段代码先对基本的软硬件环境(时钟等...)进行初始化&#xff0c;然后再检测拨码开关位置获取启动方式&#xff0c;然后再将对应存储器中的uboot搬移到内存&#xff0c;然后跳…

如何在STM32上配置DMA通道

STM32系列微控制器具有DMA&#xff08;Direct Memory Access&#xff09;功能&#xff0c;它允许外设直接访问存储器&#xff0c;从而减轻CPU的负担。在本文中&#xff0c;我们将介绍如何在STM32上配置DMA通道。 Step 1: 选择DMA通道 STM32微控制器通常具有多个DMA通道&#x…

mysql复习笔记04(小滴课堂)

mysql的存储引擎介绍 基于表的。 查看数据库支持的引擎&#xff1a; 查看支持的版本&#xff1a; 查看表的引擎&#xff1a; 查看所有表的存储引擎&#xff1a; 也可以修改默认引擎。 这有一张数据量庞大的表。 表是通过执行shell脚本快速创建的. 创建的表. 执行成功后会有个s…

Flink系列之:集合操作

Flink系列之&#xff1a;集合操作 一、集合操作二、UNION三、INTERSECT四、EXCEPT五、IN六、EXISTS 一、集合操作 适用于流、批操作 二、UNION UNION 和 UNION ALL 返回两个表中的数据。 UNION 会去重&#xff0c;UNION ALL 不会去重。 Flink SQL> create view t1(s) as…

PIG框架学习1——密码模式登录认证获取Token流程

文章目录 O、前言一、总流程概括&#xff1a;二、具体流程分析PIG提供的具体流程图&#xff1a;鉴权请求报文示例0、网关前置处理1、客户端认证处理2、正式接受登录请求3、组装认证对象4、认证管理器进行认证&#xff08;授权认证调用&#xff09;5、认证成功处理器 O、前言 对…

论文阅读:Learning sRGB-to-Raw-RGB De-rendering with Content-Aware Metadata

论文阅读&#xff1a;Learning sRGB-to-Raw-RGB De-rendering with Content-Aware Metadata Abstract 大多数的 Camera ISP 会将 RAW 图经过一系列的处理&#xff0c;变成 sRGB 图像&#xff0c;ISP 的处理中很多模块是非线性的操作&#xff0c;这些操作会破坏环境光照的线性…

【LLM】Prompt Engineering

Prompt Engineering CoTCoT - SCToTGoT CoT: Chain-of-Thought 通过这样链式的思考&#xff0c;Model输出的结果会更准确 CoT-SC: Self-Consistency Improves Chain of Thought Reasoning in Language Models 往往&#xff0c;我们会使用Greedy decode这样的策略&#xff0c…

arcgis更改服务注册数据库账号及密码

最近服务器数据库密码换了&#xff0c;gis服务也得换下数据库连接密码。传统官方的更改方式&#xff08;上传连接配置文件&#xff09;&#xff1a; ArcGIS Server数据库注册篇(I) — 更新数据库密码_arcgis server sde换密码-CSDN博客 方式太麻烦了&#xff0c;需要安装ArcG…

springboot221酒店管理系统

springboot221酒店管理系统 源码获取&#xff1a; https://docs.qq.com/doc/DUXdsVlhIdVlsemdX

开源语音识别faster-whisper部署教程

1. 资源下载 源码地址 模型下载地址&#xff1a; large-v3模型&#xff1a;https://huggingface.co/Systran/faster-whisper-large-v3/tree/main large-v2模型&#xff1a;https://huggingface.co/guillaumekln/faster-whisper-large-v2/tree/main large-v2模型&#xff1a;…

通话状态监听-Android13

通话状态监听-Android13 1、Android Telephony 模块结构2、监听和广播获取通话状态2.1 注册2.2 通话状态通知2.3 通话状态 3、通知状态流程* 关键日志 frameworks/base/core/java/android/telephony/PhoneStateListener.java 1、Android Telephony 模块结构 Android Telephony…

解决windows环境变量配置完不生效

方法1. 重启 下面两种方法不重启 方法2. 手动打开cmd&#xff0c;输入命令 set PATHc&#xff0c;这个命令是使你写在path中的变量立即生效&#xff0c;然后重启cmd验证&#xff0c;补充&#xff08;echo %PATH%可查看系统环境变量&#xff09;我是百度说系统变量缺失所以直接…

数据结构-猴子吃桃问题

一、需求分析 有一群猴子摘了一堆桃子&#xff0c;他们每天都吃当前桃子的一半且再多吃一个&#xff0c;到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。要求&#xff1a; 1)采用数组数据结构实现上述求解&#xff1b; 2)采用链数据结构实现上述…

开源攻防武器项目

半/全自动化利用工具 项目简介 项目地址 项目名称 一款GUI界面的渗透工具&#xff0c;将部分人工经验转换为自动化&#xff0c;集成了渗透过程中常用到的一些功能&#xff0c;目前集成了端口扫描、端口爆破、web指纹扫描、漏洞扫描、漏洞利用以及编码转换功能&#xff0c;后…

TrustZone之其他设备及可信基础系统架构

一、其他设备 最后,我们将查看系统中的其他设备,如下图所示: 我们的示例TrustZone启用的系统包括一些尚未涵盖的设备,但我们需要这些设备来构建一个实际的系统。 • 一次性可编程存储器(OTP)或保险丝 这些是一旦写入就无法更改的存储器。与每个芯片上都包含相同…

数据仓库与数据挖掘小结

更加详细的只找得到pdf版本 填空10分 判断并改错10分 计算8分 综合20分 客观题 填空10分 判断并改错10分--错的要改 mooc中的--尤其考试题 名词解释12分 4个&#xff0c;每个3分 经常碰到的专业术语 简答题40分 5个&#xff0c;每道8分 综合 画roc曲线 …

02.Git常用基本操作

一、基本配置 &#xff08;1&#xff09;打开Git Bash &#xff08;2&#xff09;配置姓名和邮箱 git config --global user.name "Your Name" git config --global user.email "Your email" 因为Git是分布式版本控制工具&#xff0c;所以每个用户都需要…