I have a problem connecting to the config-server. I am not sure what am I doing wrong. I have configured server running in a docker container named "config-server" on port 8888.
http://config-server:8888. Will be trying the next url if available
2020-08-10 17:38:35.196 ERROR 11052 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: Could not locate PropertySource and the fail fast property is set, failing
at org.springframework.cloud.config.client.ConfigServicePropertySourceLocator.locate(ConfigServicePropertySourceLocator.java:148) ~[spring-cloud-config-client-2.2.3.RELEASE.jar:2.2.3.RELEASE]
discovery-server bootstrap.yml
spring:
application:
name: discovery-server
cloud:
config:
uri: http://config-server:8888
fail-fast: true
retry:
max-attempts: 20
EDIT
config-server Dockerfile
FROM openjdk:11.0-jre
ADD ./target/config-server-0.0.1-SNAPSHOT.jar config-server-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["java", "-jar", "/config-server-0.0.1-SNAPSHOT.jar"]
EXPOSE 8888
docker run -p 8888:8888 --name config-server 3deb982c96fe
Discavery-server is not running in docker. First I want to create its .jar file
Original question already answered in comments, answering the last point here for better formatting:
Jar file will be built in
/targetfolder of your application everytime you runmvn clean installorgradle build. In order to run this in Docker you have to copy the jar file from your/targetdirectory to the Docker container inner files, and then run it (java -jar nameOfYourJar.jar).Name of your jar can be defined in maven/gradle settings but to keep your Dockerfile generic I suggest following Dockerfile:
with
ARG JAR_FILEyou save the path to any jar file (found in target) asJAR_FILEvariable in docker and then you can copy it to your Docker inner files where it will be stored under the nameapp.jar.ENTRYPOINT is the command that will be run on container start.
Place the Dockerfile next to the
/targetdirectory (so in root folder of your app) and run following command in terminal:docker build -t springapp . && docker run --rm -d -p 8080:8080 springappHope this clarifies everything.