Здесь я вижу три возможных решения:
1. Самый простой способ - создать образ после создания банки:
docker build -t yourapp
И затем в docker-compose вместоbuild, который вы должны поместить:
image: yourapp
См. следующий параметр для получения более подробной информации.
2. Ваша конфигурация похожа на эта в Gradle .Он использует gradle для создания образа, как вы включили в ваш пример maven, а затем он использует образ docker внутри docker-compose.Я не проверял себя, но это должно быть что-то вроде этого:
mvn clean package docker:build
Докер должен составить (помните, что имеет значение ):
services:
web:
container_name: web
image: springdocker
ports:
- "8080:8080"
depends_on:
- appointment-mysql
volumes:
- .:/code
- logvolume01:/var/log
restart: always
Чтовы делаете в своем примере, чтобы собрать Dockerfile снова.Выше я использую созданное изображение, оно зависит от другого контейнера и всегда должно быть перезапущено.
3. Второй пример взят из здесь .В этом случае вы можете построить изображение.Плагин maven для создания образа докера удален.Часть сборки остается такой же, как
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
Компонент docker compose выглядит примерно так:
services:
web:
container_name: web
build: .
ports:
- "8080:8080"
depends_on:
- appointment-mysql
volumes:
- .:/code
- logvolume01:/var/log
command: mvn clean spring-boot:run
restart: always
В этом примере важная вещь - это командная часть.Dockerfile следует изменить следующим образом (в образе java не установлен maven):
FROM maven:3.5-jdk-8