1

在我的 docker-compose.yaml 文件中,我使用图像“my-service”(在其他可以正常工作的远程图像中)

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

通常我使用 io.fabric8 docker-maven-plugin 用 maven 构建“my-service”图像。

我的 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"]

有没有办法使用来自 Testcontainers 的 DockerComposeContainer 让 docker-compose 使用我的本地服务镜像?

这是我的测试设置

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

听起来我需要构建用于测试的图像,但我不知道该怎么做。

4

1 回答 1

0

这不是错误消息,而只是docker-compose pull失败时的警告,请参见此处

你也可以让 Docker Compose 为你构建镜像(虽然强烈推荐withLocalCompose(true)在这种情况下使用)

于 2019-02-15T17:23:02.147 回答