【发布时间】:2019-03-27 17:06:54
【问题描述】:
我正在尝试使用 docker-compose 在 AWS CodeBuild 上设置自动化 Rails 测试,但它出错了。
在 buildspec.yml 中:
phases:
build:
commands:
- docker-compose up -d
[Container] 2018/10/23 11:27:56 Running command docker-compose up -d
Couldn't connect to Docker daemon at http+docker://localhost - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
[Container] 2018/10/23 11:27:56 Command did not exit successfully docker-compose up -d exit status 1
[Container] 2018/10/23 11:27:56 Running command echo This always runs even if the install command fails
This always runs even if the install command fails
[Container] 2018/10/23 11:27:56 Phase complete: BUILD Success: false
[Container] 2018/10/23 11:27:56 Phase context status code: COMMAND_EXECUTION_ERROR Message: Error while executing command: docker-compose up -d. Reason: exit status 1
大概我需要安装 docker 并启动服务,但这将在 Docker 中运行 Docker,并且需要以特权权限启动构建服务器。我只能看到用于构建 Docker 映像的示例,但我只是尝试使用它来设置运行测试的环境。
回答:在 CodeBuild 的环境部分设置 Docker 映像
感谢@mferre 回答这个问题。 Docker-compose 确实是完全支持的,不需要做任何特别的事情。关键是在 AWS CodeBuild 控制台(或通过 API 进行设置)时,在“环境”部分选择一个 Docker 映像:
也可以为现有项目指定 - 从 Build / Build Projects 中选择项目,然后从 Edit 菜单中选择 Environments。这使您可以指定图像:
您可以使用任何其他镜像并在buildspec.yml 中编写 Docker 设置脚本,但最简单的方法是使用上述官方 Docker 镜像。以此为容器,docker 和 docker-compose 已预先安装,因此 docker-compose “正常工作”。如果项目的根目录中有docker-compose.yml 文件,则buildspec.yml 可以像立即运行一样简单:
version: 0.2
phases:
build:
commands:
- docker-compose up -d
【问题讨论】:
-
你解决过这个问题吗?在这里使用 aws 提供的节点 8.11 容器遇到相同的错误
-
世界上最大的未解之谜????
-
...刚刚解决了????
-
@mahemoff 屏幕截图链接不可靠。对您的解决方案的一些工作参考会很棒。
标签: ruby-on-rails amazon-web-services docker docker-compose aws-codebuild