drone.io 是否支持在构建过程中创建 docker
Whether drone.io support creating docker during build process
我在我的项目中使用 maven-docker-plugin。此插件将在集成测试期间创建 docker 个容器。由于 drone.io 将构建过程放在 docker 容器中,我是否仍然可以在 maven 构建期间使用 maven-docker-plugin?如何在构建期间控制 docker 个容器?
如果您想直接与 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 守护进程暴露给您的构建环境实质上是让您的构建根访问您的服务器。因此,不建议将此方法用于 public 个存储库。
另请注意,卷出于安全原因受到限制。要使用卷,您需要让 Drone 管理员在您的存储库设置屏幕中将您的存储库标记为受信任。
因此可以从构建环境内部启动容器,以便 运行测试。但是,推荐的方法是 运行 直接在构建环境中进行测试。这是 Drone 优化的用例,它消除了上述安全问题。
我在我的项目中使用 maven-docker-plugin。此插件将在集成测试期间创建 docker 个容器。由于 drone.io 将构建过程放在 docker 容器中,我是否仍然可以在 maven 构建期间使用 maven-docker-plugin?如何在构建期间控制 docker 个容器?
如果您想直接与 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 守护进程暴露给您的构建环境实质上是让您的构建根访问您的服务器。因此,不建议将此方法用于 public 个存储库。
另请注意,卷出于安全原因受到限制。要使用卷,您需要让 Drone 管理员在您的存储库设置屏幕中将您的存储库标记为受信任。
因此可以从构建环境内部启动容器,以便 运行测试。但是,推荐的方法是 运行 直接在构建环境中进行测试。这是 Drone 优化的用例,它消除了上述安全问题。