Nếu bạn không muốn cung cấp hình ảnh docker tùy chỉnh với docker-compose được cài đặt sẵn, bạn có thể làm cho nó hoạt động bằng cách cài đặt Python trong thời gian xây dựng. Với Python được cài đặt, bạn cuối cùng có thể cài đặt docker-compose sẵn sàng để quay lên các thùng chứa của bạn.
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/
Sử dụng Docker-soạn exec với -T nếu bạn nhận này hoặc một lỗi tương 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
Nguồn
2016-11-02 18:27:19
Vì vậy, đơn giản hơn và thực sự hoạt động. – emyller
@tmaier Tôi nghĩ rằng tôi cũng bị kẹt ở đây. Bạn đã sử dụng loại cài đặt Runner nào? Tôi có nghĩa là bạn đã đi theo ba cách nào? https://docs.gitlab.com/ee/ci/docker/using_docker_build.html#runner-configuration –
Chúng tôi đang sử dụng trình quản lý docker-in-docker https://docs.gitlab.com/ee/ci/ docker/using_docker_build.html # use-docker-in-docker-executor – n2o