Dear developer.
I'm having a problem using spring-boot-docker-compose. The official documentation for the introduction of this feature is very brief, not even example.
spring config
spring:
docker:
compose:
enabled: true
host: 192.168.119.128
readiness:
timeout: 1m
lifecycle-management: start_and_stop
start:
command: start
stop:
command: down
timeout: 1m
file: ./yy-ordering.yaml
docker compose
version: '3.8'
services:
auth:
build: .
ports:
- "8000:8000"
container_name: test_auth
labels:
org.springframework.boot.readiness-check.tcp.disable: true
docker file
FROM openjdk:17-slim
LABEL authors="Licon"
MAINTAINER Licon
RUN mkdir -p /usr/app/yy_ordering
WORKDIR /usr/app/yy_ordering
COPY ../../../target/yy-auth-1.0.jar /usr/app/yy_ordering/yy-auth-1.0.jar
RUN chmod -x /usr/app/yy_ordering/yy-auth-1.0.jar
ENV SERVER_PORT=8000
ENTRYPOINT ["java",\
"-Dserver.port=${SERVER_PORT}",\
"-jar","yy-auth-1.0.jar"]
EXPOSE ${SERVER_PORT}
start up exception
org.springframework.boot.docker.compose.core.DockerProcessStartException: Unable to start docker process. Is docker correctly installed?
at org.springframework.boot.docker.compose.core.DockerCli$DockerCommands.getDockerCommand(DockerCli.java:140) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.core.DockerCli$DockerCommands.<init>(DockerCli.java:129) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.core.DockerCli.lambda$new$0(DockerCli.java:65) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[na:na]
at org.springframework.boot.docker.compose.core.DockerCli.<init>(DockerCli.java:64) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.core.DockerCompose.get(DockerCompose.java:92) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.lifecycle.DockerComposeLifecycleManager.getDockerCompose(DockerComposeLifecycleManager.java:142) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.lifecycle.DockerComposeLifecycleManager.start(DockerComposeLifecycleManager.java:105) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.lifecycle.DockerComposeListener.onApplicationEvent(DockerComposeListener.java:53) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.lifecycle.DockerComposeListener.onApplicationEvent(DockerComposeListener.java:35) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-6.0.9.jar:6.0.9]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-6.0.9.jar:6.0.9]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143) ~[spring-context-6.0.9.jar:6.0.9]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:131) ~[spring-context-6.0.9.jar:6.0.9]
at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.context.event.EventPublishingRunListener.contextLoaded(EventPublishingRunListener.java:98) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplicationRunListeners.lambda$contextLoaded$4(SpringApplicationRunListeners.java:72) ~[spring-boot-3.1.0.jar:3.1.0]
at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:112) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplicationRunListeners.contextLoaded(SpringApplicationRunListeners.java:72) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:415) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1305) ~[spring-boot-3.1.0.jar:3.1.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1294) ~[spring-boot-3.1.0.jar:3.1.0]
at com.licon.YyAuthApplication.main(YyAuthApplication.java:9) ~[classes/:na]
Caused by: org.springframework.boot.docker.compose.core.ProcessStartException: Unable to start command docker version --format {{.Client.Version}}
at org.springframework.boot.docker.compose.core.ProcessRunner.startProcess(ProcessRunner.java:115) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.core.ProcessRunner.run(ProcessRunner.java:87) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.core.ProcessRunner.run(ProcessRunner.java:74) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
at org.springframework.boot.docker.compose.core.DockerCli$DockerCommands.getDockerCommand(DockerCli.java:135) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
... 25 common frames omitted
Caused by: java.io.IOException: Cannot run program "docker": CreateProcess error=2, 系统找不到指定的文件。
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143) ~[na:na]
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073) ~[na:na]
at org.springframework.boot.docker.compose.core.ProcessRunner.startProcess(ProcessRunner.java:105) ~[spring-boot-docker-compose-3.1.0.jar:3.1.0]
... 28 common frames omitted
Caused by: java.io.IOException: CreateProcess error=2, 系统找不到指定的文件。
at java.base/java.lang.ProcessImpl.create(Native Method) ~[na:na]
at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:494) ~[na:na]
at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:159) ~[na:na]
at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110) ~[na:na]
... 30 common frames omitted
Comment From: wjzxc123
my docker compose version
{"version":"v2.6.1"}
Comment From: mhalbritter
"系统找不到指定的文件。" translates to "The system can not find the file specified.", so it looks like that the system is unable to find docker.
What does
docker --version
give you?
What is the operating system?
Comment From: wjzxc123
Sorry, I dont know that a docker environment is required to use this function. I thought it was the way docker runs using ssh connection.
Comment From: mhalbritter
Docker Compose uses Docker to orchestrate the services, so you need to install Docker and Docker Compose to use that feature.
Is that issue resolved? Can I close it?
Comment From: wjzxc123
ok, thank you
Comment From: rishiraj88
docker is essential for compose. In newer versions, docker-compose is deprecated, rather docker compose is recommended for up and down.