我没有看到你复制jar
到任何地方的容器中。你应该尝试移动一个VOLUME
声明来自Dockerfile
to the compose
文件到spring
像这样的服务:
volumes:
- /my/project/dir:/app
然后在 Dockerfile 中您应该指向该目录:
ENTRYPOINT [ "java","-jar","/app/build/libs/spring-project-0.1.0.jar" ]
稍后,如果您想部署它(例如),您应该将项目文件直接复制到映像中,而不是使用volumes
方法。所以在Dockerfile
然后你会这样做:
COPY . /app
代替VOLUME [..]
把它们放在一起:
发展:
Dockerfile:
FROM tomcat:9-jre8
RUN apt-get update && apt-get install librrds-perl rrdtool -y
ENTRYPOINT [ "java","-jar","/app/build/libs/spring-project-0.1.0.jar" ]
撰写文件:
version: '2'
services:
[..]
spring:
container_name: spring-boot-project
build: .
links:
- db:db1
- db2:db2
depends_on:
- db
- db2
ports:
- "8081:8081"
restart: always
volumes:
- /my/project/dir:/app
部署:
Dockerfile(位于项目文件夹内,docker build 要求其构建上下文位于当前目录中):
FROM tomcat:9-jre8
RUN apt-get update && apt-get install librrds-perl rrdtool -y
COPY . /app
ENTRYPOINT [ "java","-jar","/app/build/libs/spring-project-0.1.0.jar" ]
撰写文件:
version: '2'
services:
[..]
spring:
container_name: spring-boot-project
build: .
links:
- db:db1
- db2:db2
depends_on:
- db
- db2
expose:
- "8081"