【问题标题】:Docker composer command failed during install composer dependencies安装作曲家依赖项期间 Docker 作曲家命令失败
【发布时间】:2019-03-29 09:44:51
【问题描述】:

我正在设置部署服务器。我安装了 docker 并使用 phpdocker.io 生成的 docker-composer.yaml 运行 docker 容器。而且我还安装了詹金斯。所有设置都在 EC2 实例上。一切正常。

在 github 中推送到 master 期间,jenkins 需要在 EC2 实例中进行拉取并运行一些命令。当我尝试安装作曲家依赖项时,出现以下错误:

docker-compose exec php-fpm composer install
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我尝试寻找许多解决方案,但 jenkins 似乎无法找到 docker,或者无法与 docker 通信。

提到的解决方案之一是 docker 没有运行。我已登录 EC2 实例,我确信它正在运行。我还添加了 docker 到 sudo。 只是为了确认这里是$ id -nG的输出

$ id -nG
ubuntu adm dialout cdrom floppy sudo audio dip video plugdev lxd netdev docker

如cmets中所说,我尝试添加sudo

$ sudo docker-compose exec php-fpm composer install
sudo: no tty present and no askpass program specified
Build step 'Execute shell' marked build as failure
Finished: FAILURE

任何想法如何解决这个错误?如果您需要更多信息,请随时询问。

谢谢

【问题讨论】:

标签: php amazon-web-services docker jenkins docker-compose


【解决方案1】:

运行包含来自 jenkins 的 sudo 命令的 shell 脚本可能无法按预期运行。要解决此问题,请遵循 简单的步骤: 1. 在基于 ubuntu 的系统上,运行“$ sudo visudo” 2. 这将打开 /etc/sudoers 文件。 3.如果你的jenkins用户已经在那个文件中,那么修改如下:

詹金斯 ALL=(ALL) NOPASSWD: ALL 4.按Ctrl+O保存文件(不要保存在tmp文件中。保存在/etc/sudoers,确认覆盖) 5. Ctrl+X 退出 6.重新启动你的詹金斯工作 7. 你应该不会再看到那个错误信息了:)

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 1970-01-01
    • 2021-11-03
    • 2017-09-15
    • 2017-02-14
    • 2014-05-31
    • 2013-06-02
    • 2018-12-28
    相关资源
    最近更新 更多