我正在尝试使用docker-compose在AWS CodeBuild上设置自动化Rails测试,但出现了错误。
在buildspec.yml文件中:
我需要安装Docker并启动服务,但这将在Docker内部运行,并且需要以特权权限启动构建服务器。我只能看到构建Docker镜像的示例,但我只是想使用它来设置环境以运行测试。
已回答:在CodeBuild的环境部分设置Docker镜像
感谢@mferre的回答。无需进行任何特殊操作即可完全支持Docker-compose。关键是在设置AWS CodeBuild控制台内部(或通过API)时,在“环境”部分选择一个Docker镜像:
在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镜像的示例,但我只是想使用它来设置环境以运行测试。
已回答:在CodeBuild的环境部分设置Docker镜像
感谢@mferre的回答。无需进行任何特殊操作即可完全支持Docker-compose。关键是在设置AWS CodeBuild控制台内部(或通过API)时,在“环境”部分选择一个Docker镜像:
或者也可以为现有项目指定 - 从“构建/构建项目”中选择项目,然后从“编辑”菜单中选择“环境”。这样可以让您指定镜像:
你可以使用任何其他的镜像并在buildspec.yml
中编写Docker设置,但最简单的方法是使用上述官方Docker镜像。使用此容器,docker和docker-compose已预先安装,因此docker-compose“只需工作”。如果项目根目录中有一个docker-compose.yml
文件,则buildspec.yml
可以简单地立即运行它:
version: 0.2
phases:
build:
commands:
- docker-compose up -d