I have a spring-boot based java application which runs fine from the command line (embedded tomcat standalone).
Problem
When I run the app in docker, it does not run correctly. The console shows the application starts up fine with no errors; however, the browser displays the following error page:
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
[I understand the message says no mapping for '/error' url. However I want to know the root cause ]
Additional Info/Context
- Spring boot 1.4.2
- docker plugin
- Output is 'war' file which also runs standalone
- I run docker image in 'host' networking mode (--net=host) so it can access the database (mysql running on my localhost)
build.gradle target
task buildDocker(type: Docker, dependsOn: build) {
push = false
applicationName = jar.baseName
dockerfile = file('src/main/docker/Dockerfile')
doFirst {
copy {
from war
into stageDir
}
}
}
dockerfile
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD floss.war app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
Command to Run Docker
dockerImg=1248c47d9cfa
docker run \
-it \
--net=host \
-e SPRING_APPLICATION_JSON="$SPRING_APPLICATION_JSON" \
$dockerImg
I'm new to docker and would appreciate any suggestions.
thanks in advance!