0

我在我的项目中使用 maven-docker-plugin。该插件将在集成测试期间创建 docker 容器。由于drone.io将构建过程放在docker容器中,我是否仍然可以在maven构建期间使用maven-docker-plugin?如何在构建期间控制 docker 容器?

4

1 回答 1

1

如果您想直接与 Docker 守护进程交互以创建和启动容器,则需要将主机 Docker 套接字挂载到您的构建容器中。

由于您提到使用 docker-maven-plugin,您可能需要类似于以下的配置:

pipeline:
  build:
    image: maven
    environment:
      - DOCKER_API_VERSION=1.20
      - DOCKER_HOST=/var/run/docker.sock
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    commands:
      - mvn clean package docker:build

请注意,将 Docker 守护程序暴露给您的构建环境本质上是让您的构建根访问您的服务器。因此,不建议将这种方法用于公共存储库。

另请注意,卷是受限制的安全原因。要使用卷,您需要让 Drone 管理员在您的存储库设置屏幕中将您的存储库标记为受信任。

因此,可以从构建环境内部启动容器以运行测试。但是,推荐的方法是直接在构建环境中运行测试。这是 Drone 优化的用例,它消除了上面提到的安全问题。

于 2017-01-05T02:40:12.123 回答