Если вы не хотите предоставлять пользовательское изображение докеров с предустановленной док-станцией, вы можете заставить его работать, установив Python во время сборки. С установленным Python вы можете, наконец, установить докеры, готовые для разворачивания ваших контейнеров.
image: docker:latest
services:
- docker:dind
before_script:
- apk add --update python py-pip python-dev && pip install docker-compose # install docker-compose
- docker version
- docker-compose version
test:
cache:
paths:
- vendor/
script:
- docker-compose up -d
- docker-compose exec -T php-fpm composer install --prefer-dist
- docker-compose exec -T php-fpm vendor/bin/phpunit --coverage-text --colors=never --whitelist src/ tests/
Использование докер-Compose Exec с -T, если вы получите это или подобная ошибка:
$ docker-compose exec php-fpm composer install --prefer-dist
Traceback (most recent call last):
File "/usr/bin/docker-compose", line 9, in <module>
load_entry_point('docker-compose==1.8.1', 'console_scripts', 'docker-compose')()
File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 62, in main
command()
File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 114, in perform_command
handler(command, command_options)
File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 442, in exec_command
pty.start()
File "/usr/lib/python2.7/site-packages/dockerpty/pty.py", line 338, in start
io.set_blocking(pump, flag)
File "/usr/lib/python2.7/site-packages/dockerpty/io.py", line 32, in set_blocking
old_flag = fcntl.fcntl(fd, fcntl.F_GETFL)
ValueError: file descriptor cannot be a negative integer (-1)
ERROR: Build failed: exit code 1
Так проще и на самом деле работает. – emyller
@tmaier Я думаю, что тоже застрял. Какую «Runner-Installation» вы использовали? Я имею в виду, какой из трех способов вы ушли? https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#runner-configuration –
Мы используем исполнителя docker-in-docker https://docs.gitlab.com/ee/ci/ Докер/using_docker_build.html # потребительная докер-в-докер-исполнителя – n2o