drone.io是否支持在构建过程中创建docker

时间:2017-01-04 22:08:41

标签: drone.io

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

1 个答案:

答案 0 :(得分: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守护程序暴露给构建环境本质上是为您的构建root权限提供服务器。因此,不建议将此方法用于公共存储库。

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

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