我正在使用带有ansible的打包程序docker builder来创建docker镜像(https://www.packer.io/docs/builders/docker.html)
我有一台机器(客户端),用于运行构建脚本 . 封隔器码头工具由此机器执行 . 这台机器有docker客户端 . 它连接到远程docker守护程序 . 环境变量DOCKER_HOST设置为指向远程docker主机 . 我能够测试连接性,并且工作正常 .
现在的问题是,当我执行打包器docker来构建映像时,它出错了:
docker: Run command: docker run -v /root/.packer.d/tmp/packer-docker612435850:/packer-files -d -i -t ubuntu:latest /bin/bash
==> docker: Error running container: Docker exited with a non-zero exit status.
==> docker: Stderr: docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
==> docker: See 'docker run --help'.
似乎封隔器码头 Worker 看着当地的守护进程 .
解决方法:我重命名了docker binary并引入了一个名为“docker”的脚本,该脚本设置DOCKER_HOST并使用传入的参数调用原始docker二进制文件 .
有没有更好的方法来解决这个问题?
1 回答
Packers Docker构建器不能与远程主机一起使用,因为packer使用
/packer-files
卷装置与容器通信 . 这在文档中含糊地表达为:并在Overriding the host directory中解释 .