Я пытаюсь настроить автоматические тесты Rails на AWS CodeBuild с помощью docker-compose, но он выдает ошибку.
В 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, но я просто пытаюсь использовать его для настройки среды, в которой будет выполняться тест.
ОТВЕТ: Установите образ Docker в разделе среды CodeBuild
Спасибо @mferre за ответ.Docker-compose действительно полностью поддерживается, не делая ничего особенного.Ключ заключается в выборе образа Docker в разделе «среда» при настройке внутри консоли AWS CodeBuild (или через API):

Или же может быть указан для существующего проекта - из Build / Build Projects выберите проект и Environments из меню Edit.Это позволяет вам указать изображение:

Вы можете использовать любое другое изображение и создать сценарий настройки Docker в buildspec.yml
, но самый простой способ этоиспользуйте официальное изображение Docker, как указано выше.При этом в качестве контейнера предварительно устанавливаются docker и docker-compose, поэтому docker-compose «просто работает».Если в корне проекта есть файл docker-compose.yml
, то buildspec.yml
можно просто запустить сразу:
version: 0.2
phases:
build:
commands:
- docker-compose up -d