docker-compose not 运行 well if set on a job's shell command with jenkins
docker-compose not run well if set on a job's shell command with jenkins
我在 Ubuntu 上安装了 Jenkins。将当前用户添加到 docker 组:
sudo usermod -aG docker ${USER}
还将 jenkins
用户添加到 docker 组:
sudo usermod -aG docker jenkins
我在 Jenkins 作业中设置了这个 shell 命令:
#!/bin/sh
docker-compose up -d --build
在 运行 那个工作之后从 Jenkins 得到了这些控制台输出:
...
$ /bin/bash /tmp/jenkins1207165068215188667.sh
Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
Build step 'Execute shell' marked build as failure
Finished: FAILURE
但是如果我在 jenkins
用户下的主机上尝试命令 docker-compose up -d --build
,它会起作用。为什么不能使用 Jenkins 的 shell 命令?
而且,为什么它让我使用 docker-machine
?我试图创建一台 docker 机器,但默认驱动程序是 virtualbox
。因为我在没有 GUI 的情况下使用 Ubuntu,所以我认为 virtualbox
不是必需的。
您是否设置了 DOCKER_HOST 环境变量?这或多或少就是 docker-machine use ...
所做的。您需要告诉 docker 要连接到哪个套接字,并且当您在 jenkins 下登录时可能有一些 .bashrc 或类似的 运行s 来设置它?在 运行 docker-compose up -d
作为 jenkins 之前检查 DOCKER_HOST var 并查看值是什么。然后你可以在你的脚本中 export DOCKER_HOST=...
当你知道的时候。
我在 Ubuntu 上安装了 Jenkins。将当前用户添加到 docker 组:
sudo usermod -aG docker ${USER}
还将 jenkins
用户添加到 docker 组:
sudo usermod -aG docker jenkins
我在 Jenkins 作业中设置了这个 shell 命令:
#!/bin/sh
docker-compose up -d --build
在 运行 那个工作之后从 Jenkins 得到了这些控制台输出:
...
$ /bin/bash /tmp/jenkins1207165068215188667.sh
Couldn't connect to Docker daemon - you might need to run `docker-machine start default`.
Build step 'Execute shell' marked build as failure
Finished: FAILURE
但是如果我在 jenkins
用户下的主机上尝试命令 docker-compose up -d --build
,它会起作用。为什么不能使用 Jenkins 的 shell 命令?
而且,为什么它让我使用 docker-machine
?我试图创建一台 docker 机器,但默认驱动程序是 virtualbox
。因为我在没有 GUI 的情况下使用 Ubuntu,所以我认为 virtualbox
不是必需的。
您是否设置了 DOCKER_HOST 环境变量?这或多或少就是 docker-machine use ...
所做的。您需要告诉 docker 要连接到哪个套接字,并且当您在 jenkins 下登录时可能有一些 .bashrc 或类似的 运行s 来设置它?在 运行 docker-compose up -d
作为 jenkins 之前检查 DOCKER_HOST var 并查看值是什么。然后你可以在你的脚本中 export DOCKER_HOST=...
当你知道的时候。