Можно ли использовать локальный образ Docker в файле docker-compose для DockerComposeContainer? - PullRequest
0 голосов
/ 15 февраля 2019

В моем файле docker-compose.yaml я использую образ «my-service» (среди других удаленных образов, которые работают нормально)

version: "2"
services:
  myservice:
    image: my-service

Обычно я создаю образ «my-service» с помощью mavenиспользуя io.fabric8 docker-maven-plugin.

Мой Dockerfile:

FROM vertx/vertx3-alpine
ENV VERTICLE_HOME /opt/lib
ENV NAME my-service
ENV EXEC_JAR_NAME my-service.jar
COPY target/my-service-1.0-SNAPSHOT.jar $VERTICLE_HOME/$EXEC_JAR_NAME
COPY target/lib $VERTICLE_HOME
COPY src/main/resources/settings.json /etc/company/myservice/settings.json
ENTRYPOINT ["sh", "-c"]
CMD ["java -cp $VERTICLE_HOME/$EXEC_JAR_NAME com.company.myservice.MyVerticle"]

Есть ли способ использовать DockerComposeContainer из Testcontainers для docker-compose, чтобы использовать мой локальный образ my-service?

Это мой тестовый набор

public class MyServiceIT {
    @ClassRule
    public static DockerComposeContainer compose =
            new DockerComposeContainer(new File("src/test/resources/docker-compose.yml"));

В настоящее время я получаю следующее сообщение об ошибке при использовании локальных изображений.

7:15:34.282 [tc-okhttp-stream-454305524] INFO ? [docker/compose:1.8.0] - STDERR: pull access denied for my-service, repository does not exist or may require 'docker login'
17:15:34.283 [main] WARN org.testcontainers.containers.DockerComposeContainer - Exception while pulling images, using local images if available

Звучит так, как будто янеобходимо создать образ для использования в моем тесте, но я не уверен, как это сделать.

1 Ответ

0 голосов
/ 15 февраля 2019

Это не сообщение об ошибке, а просто предупреждение, если docker-compose pull не удается, см. здесь .

. Вы также можете заставить Docker Compose создавать образы для вас (хотя это оченьрекомендуется использовать withLocalCompose(true) в этом случае)

...