Spring 对docker的春季战靴战
我的docker文件如下所示:Spring 对docker的春季战靴战,spring,docker,spring-boot,tomcat,war,Spring,Docker,Spring Boot,Tomcat,War,我的docker文件如下所示: FROM tomcat:8.5-alpine VOLUME /tmp COPY SNAPSHOT.war /usr/local/tomcat/webapps/app.war RUN sh -c 'touch /usr/local/tomcat/webapps/app.war' EXPOSE 8080 ENTRYPOINT [ "sh", "-c", "java -Dspring.profiles.active=docker -Djava.security.egd=
FROM tomcat:8.5-alpine
VOLUME /tmp
COPY SNAPSHOT.war /usr/local/tomcat/webapps/app.war
RUN sh -c 'touch /usr/local/tomcat/webapps/app.war'
EXPOSE 8080
ENTRYPOINT [ "sh", "-c", "java -Dspring.profiles.active=docker -Djava.security.egd=file:/dev/./urandom -jar /usr/local/tomcat/webapps/app.war" ]
部署时一切正常。我使用docker compose是因为我有两个容器:一个用于tomcat,一个用于mongodb
docker-compose.yml如下所示:
tomcatserver:
image: myimage
container_name: tomcat
ports:
- 8080
hostname: tomcat
links:
- mongodb:mongo
mongodb:
image: mongo
container_name: mongo
ports:
- 27017
hostname: mongo
volumes:
- $HOME/data/mongo:/data/db
restart: always
所以除了我的静态资源外,一切都很好。它们位于
/src/main/resources/META-INF/resources/
当我用
./gradlew bootRun
它工作正常,我可以访问这些静态资源,但当上传到docker时,它们是不可访问的
有什么建议吗?你能试着把静态资源放在
/src/main/resources/META-INF/resources/static
?我是否应该像使用bootRun时那样访问它:“host:port/index.html”如果是,它不起作用:(这只是一个猜测,很抱歉没有帮助。你能检查一下容器日志吗?docker logs
。我怀疑启动应用程序本身由于某种原因没有出现。日志至少会隔离这个问题。我会看到日志,但我想说的是,spring boot应用程序启动了,我可以做我的应用程序提供的一切ut静态内容