{"id":24111,"date":"2025-07-06T07:57:29","date_gmt":"2025-07-06T00:57:29","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=24111"},"modified":"2025-08-29T09:23:55","modified_gmt":"2025-08-29T02:23:55","slug":"docker-compose-support-in-spring-boot-applications","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html","title":{"rendered":"Docker Compose support in Spring Boot applications"},"content":{"rendered":"<p>We often use Docker Compose to run multiple applications with the database or with other services that the application is using, at the same time, using multiple Docker containers. From version 3.1 onwards, Spring Boot also supports Docker Compose, making it much easier to develop Spring Boot applications. How is it in detail? Let&#8217;s find out together in this tutorial!<\/p>\n<p>First, I will create a new Spring Boot project with Spring Data JPA, PostgreSQL Driver and Docker Compose Support:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-24113 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2025\/07\/docker-compose-support-in-spring-boot-applications-1.png\" alt=\"\" width=\"700\" height=\"642\" \/><\/p>\n<p>for example.<\/p>\n<p><strong>As you can see, when I create a Spring Boot project with Docker Compose Support, a compose.yaml file is also created.<\/strong><\/p>\n<p>Check this compose.yaml file, you will see a postgres service has been declared, as follows:<\/p>\n<pre class=\"lang:yaml decode:true\">services:\r\n  postgres:\r\n    image: 'postgres:latest'\r\n    environment:\r\n      - 'POSTGRES_DB=mydatabase'\r\n      - 'POSTGRES_PASSWORD=secret'\r\n      - 'POSTGRES_USER=myuser'\r\n    ports:\r\n      - '5432'\r\n<\/pre>\n<p>That&#8217;s because I declared to use the PostgreSQL Driver!<\/p>\n<p>You need to edit the ports section a bit to expose port 5432 of the PostgreSQL database to the outside, as follows:<\/p>\n<pre class=\"lang:yaml mark:11 decode:true\">services:\r\n  postgres:\r\n    image: 'postgres:latest'\r\n    environment:\r\n      - 'POSTGRES_DB=mydatabase'\r\n      - 'POSTGRES_PASSWORD=secret'\r\n      - 'POSTGRES_USER=myuser'\r\n    ports:\r\n      - '5432:5432'\r\n<\/pre>\n<p>Now, if you run this Spring Boot application, you will see Spring Boot automatically pull the Docker Image of PostgreSQL, the result is as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-24114 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2025\/07\/docker-compose-support-in-spring-boot-applications-2.png\" alt=\"\" width=\"700\" height=\"290\" \/><\/p>\n<p>Since my project currently has nothing, after pulling the Docker Image of PostgreSQL, my application will automatically shut down.<\/p>\n<p>To make an example for this project, I will connect to the PostgreSQL database to get student information.<\/p>\n<p>I will define the student table as follows:<\/p>\n<pre class=\"lang:mysql decode:true\">CREATE TABLE student\r\n(\r\n    id   INT PRIMARY KEY,\r\n    name VARCHAR(100)\r\n);\r\n\r\nINSERT INTO student(id, name) VALUES (1, 'Khanh');<\/pre>\n<p>To keep it simple, I will save the DDL of the student table to the db.sql file in the src\/main\/resources folder of the project and edit the postgres service in the compose.yaml file so that it automatically initializes the student table when running Docker Container for me, as follows:<\/p>\n<pre class=\"lang:java mark:4-5 decode:true\">services:\r\n  postgres:\r\n    image: 'postgres:latest'\r\n    volumes:\r\n      - .\/src\/main\/resources\/db.sql:\/docker-entrypoint-initdb.d\/init.sql\r\n    environment:\r\n      - 'POSTGRES_DB=mydatabase'\r\n      - 'POSTGRES_PASSWORD=secret'\r\n      - 'POSTGRES_USER=myuser'\r\n    ports:\r\n      - '5432:5432'\r\n<\/pre>\n<p>Now, I will declare the database information for my application in the application.properties file as follows:<\/p>\n<pre class=\"lang:java decode:true\">spring.datasource.url=jdbc:postgresql:\/\/localhost:5432\/mydatabase\r\nspring.datasource.username=myuser\r\nspring.datasource.password=secret<\/pre>\n<p>I will also declare the Student entity and the Repository class for this entity as follows:<\/p>\n<pre class=\"lang:java decode:true\">package com.huongdanjava.springboot;\r\n\r\nimport jakarta.persistence.Entity;\r\nimport jakarta.persistence.Id;\r\n\r\n@Entity\r\npublic class Student {\r\n\r\n  private @Id long id;\r\n  private String name;\r\n\r\n  public Student() {\r\n  }\r\n\r\n  public long getId() {\r\n    return id;\r\n  }\r\n\r\n  public void setId(long id) {\r\n    this.id = id;\r\n  }\r\n\r\n  public String getName() {\r\n    return name;\r\n  }\r\n\r\n  public void setName(String name) {\r\n    this.name = name;\r\n  }\r\n}\r\n<\/pre>\n<p>and:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.springboot;\r\n\r\nimport org.springframework.data.jpa.repository.JpaRepository;\r\n\r\npublic interface StudentRepository extends JpaRepository&lt;Student, Long&gt; {\r\n\r\n}\r\n<\/pre>\n<p>Run the application with <a href=\"https:\/\/huongdanjava.com\/java-console-application-with-spring-boot.html\" target=\"_blank\" rel=\"noopener\">Spring Boot&#8217;s CommandLineRunner<\/a>:<\/p>\n<pre class=\"lang:java decode:true \">package com.huongdanjava.springboot;\r\n\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.boot.CommandLineRunner;\r\nimport org.springframework.boot.SpringApplication;\r\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\r\nimport org.springframework.context.ApplicationContext;\r\nimport org.springframework.context.annotation.Bean;\r\n\r\n@SpringBootApplication\r\npublic class SpringBootDockerComposeSupportApplication {\r\n\r\n  @Autowired\r\n  private StudentRepository studentRepository;\r\n\r\n  public static void main(String[] args) {\r\n    SpringApplication.run(SpringBootDockerComposeSupportApplication.class, args);\r\n  }\r\n\r\n  @Bean\r\n  CommandLineRunner commandLineRunner(ApplicationContext ctx) {\r\n    return args -&gt; {\r\n      studentRepository.findAll().forEach(s -&gt; System.out.println(s.getName()));\r\n    };\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>You will see the following results:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-24115 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2025\/07\/docker-compose-support-in-spring-boot-applications-3.png\" alt=\"\" width=\"700\" height=\"408\" \/><\/p>\n<p>As you can see, my application has connected to the PostgreSQL Docker Container that Spring Boot launched when I ran the Spring Boot application.<\/p>\n<p><strong>Another support of Spring Boot for Docker Compose is that we do not need to declare PostgreSQL information in the application.properties file!<\/strong><\/p>\n<p>Information about the connection to the PostgreSQL database will be contained in the bean of the ConnectionDetails class.<\/p>\n<p>You can delete the database configuration content that we declared above in the application.properties file and run the application again. You will also see the same result.<\/p>\n<p>Try injecting the bean of the ConnectionDetails class and printing the information of the PostgreSQL database:<\/p>\n<pre class=\"lang:java mark:19-21,30 decode:true \">package com.huongdanjava.springboot;\r\n\r\nimport org.springframework.beans.factory.annotation.Autowired;\r\nimport org.springframework.beans.factory.annotation.Qualifier;\r\nimport org.springframework.boot.CommandLineRunner;\r\nimport org.springframework.boot.SpringApplication;\r\nimport org.springframework.boot.autoconfigure.SpringBootApplication;\r\nimport org.springframework.boot.autoconfigure.jdbc.JdbcConnectionDetails;\r\nimport org.springframework.boot.autoconfigure.service.connection.ConnectionDetails;\r\nimport org.springframework.context.ApplicationContext;\r\nimport org.springframework.context.annotation.Bean;\r\n\r\n@SpringBootApplication\r\npublic class SpringBootDockerComposeSupportApplication {\r\n\r\n  @Autowired\r\n  private StudentRepository studentRepository;\r\n\r\n  @Autowired\r\n  @Qualifier(\"jdbcConnectionDetailsForSpringBootDockerComposeSupportPostgres1\")\r\n  private ConnectionDetails connectionDetails;\r\n\r\n  public static void main(String[] args) {\r\n    SpringApplication.run(SpringBootDockerComposeSupportApplication.class, args);\r\n  }\r\n\r\n  @Bean\r\n  CommandLineRunner commandLineRunner(ApplicationContext ctx) {\r\n    return args -&gt; {\r\n      System.out.println(((JdbcConnectionDetails) connectionDetails).getJdbcUrl());\r\n    };\r\n  }\r\n\r\n}\r\n<\/pre>\n<p>You will see the following results:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-24116 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2025\/07\/docker-compose-support-in-spring-boot-applications-4.png\" alt=\"\" width=\"700\" height=\"360\" \/><\/p>\n<p>If you want to expose PostgreSQL to the outside using a random port, you can declare it as follows in the compose.yaml file:<\/p>\n<pre class=\"lang:java mark:11 decode:true \">services:\r\n  postgres:\r\n    image: 'postgres:latest'\r\n    volumes:\r\n      - .\/src\/main\/resources\/db.sql:\/docker-entrypoint-initdb.d\/db.sql\r\n    environment:\r\n      - 'POSTGRES_DB=mydatabase'\r\n      - 'POSTGRES_PASSWORD=secret'\r\n      - 'POSTGRES_USER=myuser'\r\n    ports:\r\n      - '5432'\r\n<\/pre>\n<p>PostgreSQL database will be run using a random port and our application can also connect to this port. For my example, if you run it again, you will see the same result as me as follows:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-24117 aligncenter\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2025\/07\/docker-compose-support-in-spring-boot-applications-5.png\" alt=\"\" width=\"700\" height=\"380\" \/><\/p>\n<p>This is very useful if you are developing microservices applications, each service uses a separate database. Random port will help us avoid port conflicts!<\/p>\n<p><strong>By default, Spring Boot will use the compose.yaml file in the root directory of the application project<\/strong>. If you want to specify the location of this compose.yaml file, you can configure it in the application.properties file using the spring.docker.compose.file property, for example:<\/p>\n<pre class=\"lang:java decode:true \">spring.docker.compose.file=compose.yaml<\/pre>\n<p>Run the application again, you will see the same result.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;24111&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Docker Compose support in Spring Boot applications&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>We often use Docker Compose to run multiple applications with the database or with other services that the application is using, at the same time, using multiple Docker containers. From version 3.1 onwards, Spring Boot also supports Docker Compose, making it much easier to develop&hellip; <a href=\"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":1680,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[582],"tags":[],"class_list":["post-24111","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-boot","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Docker Compose support in Spring Boot applications - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"In this tutorial, I will introduce you to all the support of Spring Boot for Docker Compose.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Docker Compose support in Spring Boot applications - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, I will introduce you to all the support of Spring Boot for Docker Compose.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2025-07-06T00:57:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-29T02:23:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"Docker Compose support in Spring Boot applications\",\"datePublished\":\"2025-07-06T00:57:29+00:00\",\"dateModified\":\"2025-08-29T02:23:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html\"},\"wordCount\":582,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"articleSection\":[\"Spring Boot\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html\",\"name\":\"Docker Compose support in Spring Boot applications - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"datePublished\":\"2025-07-06T00:57:29+00:00\",\"dateModified\":\"2025-08-29T02:23:55+00:00\",\"description\":\"In this tutorial, I will introduce you to all the support of Spring Boot for Docker Compose.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/10\\\/spring-boot.png\",\"width\":300,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/docker-compose-support-in-spring-boot-applications.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Docker Compose support in Spring Boot applications\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Docker Compose support in Spring Boot applications - Huong Dan Java","description":"In this tutorial, I will introduce you to all the support of Spring Boot for Docker Compose.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html","og_locale":"en_US","og_type":"article","og_title":"Docker Compose support in Spring Boot applications - Huong Dan Java","og_description":"In this tutorial, I will introduce you to all the support of Spring Boot for Docker Compose.","og_url":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2025-07-06T00:57:29+00:00","article_modified_time":"2025-08-29T02:23:55+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","type":"image\/png"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"Docker Compose support in Spring Boot applications","datePublished":"2025-07-06T00:57:29+00:00","dateModified":"2025-08-29T02:23:55+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html"},"wordCount":582,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","articleSection":["Spring Boot"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html","url":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html","name":"Docker Compose support in Spring Boot applications - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","datePublished":"2025-07-06T00:57:29+00:00","dateModified":"2025-08-29T02:23:55+00:00","description":"In this tutorial, I will introduce you to all the support of Spring Boot for Docker Compose.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/10\/spring-boot.png","width":300,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/docker-compose-support-in-spring-boot-applications.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"Docker Compose support in Spring Boot applications"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/24111","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=24111"}],"version-history":[{"count":6,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/24111\/revisions"}],"predecessor-version":[{"id":24422,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/24111\/revisions\/24422"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/1680"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=24111"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=24111"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=24111"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}