我在我的项目中使用maven-docker-plugin。此插件将在集成测试期间创建docker容器。由于drone.io将构建过程放在docker容器中,我是否仍然可以在maven构建期间使用maven-docker-plugin?如何在构建期间控制docker容器?
答案 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优化的用例,它消除了上述安全问题。