Comments (2)
Instead of putting all the services in a single compose.yml
file, I tried to split them into separate files.
common.yml
version: "3.8"
services:
rabbitmq:
image: rabbitmq:3.12.11-management
...
catalog.yml
version: "3.8"
services:
catalog-db:
image: postgres:16-alpine
...
orders.yml
version: "3.8"
include:
- common.yml
services:
orders-db:
image: postgres:16-alpine
...
Now, in the application.properties file I configured which file to use as follows:
spring.docker.compose.file=compose-files/orders.yml
spring.docker.compose.lifecycle-management=start_only
Now, the problem is, that the first spring-boot app (say order-service) that I started works as expected. But when I start the second application (say catalog-service) I see the following message due to which the required services are not being started.
s.b.d.c.l.DockerComposeLifecycleManager : Using Docker Compose file '/path/compose-files/catalog.yml'
s.b.d.c.l.DockerComposeLifecycleManager : There are already Docker Compose services running, skipping startup
from spring-boot.
I tried to split them into separate files.
Another option would be to keep the services in one file, use Docker Compose profiles, and modify your application.properties
to control when individual services are started.
I see the following message due to which the required services are not being started.
This behavior is mentioned in the documentation:
If the Docker Compose services are already running when starting the application, Spring Boot will only create the service connection beans for each supported container. It will not call
docker compose up
again and it will not calldocker compose stop
when the application is shutdown.
There is some discussion on why we chose to implement things this way in #38398.
You can set spring.docker.compose.lifecycle-management=none
to prevent this message. You will have to start the service manually (for example, with docker compose up
), but Spring Boot will create the service connections as expected.
An additional mode like the one suggested in #39749, where docker compose up
would be called without first checking to see what services are running, could help this situation. I will close this issue in favor of that issue.
from spring-boot.
Related Issues (20)
- Make it easier to provide a custom RequestToViewNameTranslator
- Note that spring-boot-docker-compose is excluded by default from packaged jars
- Note that spring-boot-docker-compose is excluded by default from packaged jars
- Remove Concourse CI configuration
- Remove Concourse CI configuration
- Remove Concourse CI configuration HOT 1
- Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: An object of type 'org.springframework.boot.loader.nio.file.NestedFileSystemProvider' was found in the image heap. This type, however, is marked for initialization at image run time for the following reason: classes are initialized at run time by default. HOT 3
- Declare the inputs of GenerateAntoraPlaybook more precisely
- Test Gradle plugin against Gradle 8.8 HOT 1
- Evaluate if adding a @WebEndpointTest for testing custom actuator web points is now feasible HOT 1
- Use ConcurrentHashMap.newKeySet where feasible
- Use ConcurrentHashMap.newKeySet where feasible
- Failing while building spring-boot-devtools version 2.7.10 using ./gradlew build (org.springframework.boot:spring-boot-devtools:2.7.10) HOT 1
- Failing while building spring-boot-starter-actuator version 2.7.10 using gradle build (org.springframework.boot:spring-boot-starter-actuator:2.7.10) HOT 1
- Change or remove dependency exclusion in spring-boot-starter-jersey HOT 1
- 3.2.3 to 3.2.5 upgrade causes Mismatched number of generics HOT 1
- Bump gradle/actions from 3.3.1 to 3.3.2
- Bump gradle/actions from 3.3.1 to 3.3.2
- In some situations, the failure when the AOT-generated initializer cannot be loaded is less helpful than before
- Mapped port can only be obtained after the container is started
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-boot.