Я не вижу, чтобы вы копировали jar
в контейнер. Вам следует попробовать переместить объявление VOLUME
из Dockerfile
в файл 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 требует, чтобы его контекст сборки находился в текущем каталоге):
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"