@CenterJoin

Gitlab CI локально. Ошибка?

У меня есть проект и хочу сделать CI в GitLab, но когда пытаюсь запустить unit test`ы локально gitlab-runner exec docker test, выдает ошибку:

Показать текст ошибки
Problem 1
- Root composer.json requires PHP extension ext-gd * but it is missing from your system. Install or enable PHP's gd extension.екст ошибки">Problem 1
- Root composer.json requires PHP extension ext-gd * but it is missing from your system. Install or enable PHP's gd extension.
Problem 2
- phpoffice/phpspreadsheet is locked to version 1.9.0 and an update of this package was not requested.
- phpoffice/phpspreadsheet 1.9.0 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
Problem 3
- pomm-project/cli is locked to version 2.0.2 and an update of this package was not requested.
- pomm-project/cli 2.0.2 requires ext-pgsql * -> it is missing from your system. Install or enable PHP's pgsql extension.
Problem 4
- pomm-project/foundation is locked to version 2.0.3 and an update of this package was not requested.
- pomm-project/foundation 2.0.3 requires ext-pgsql * -> it is missing from your system. Install or enable PHP's pgsql extension.
Problem 5
- pomm-project/model-manager is locked to version 2.0.2 and an update of this package was not requested.
- pomm-project/model-manager 2.0.2 requires ext-pgsql * -> it is missing from your system. Install or enable PHP's pgsql extension.
Problem 6
- symfony/flex is locked to version v1.4.6 and an update of this package was not requested.
- symfony/flex v1.4.6 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
Problem 7
- pomm-project/cli 2.0.2 requires ext-pgsql * -> it is missing from your system. Install or enable PHP's pgsql extension.
- pomm-project/pomm-bundle 2.4.2 requires pomm-project/cli ~2.0 -> satisfiable by pomm-project/cli[2.0.2].
- pomm-project/pomm-bundle is locked to version 2.4.2 and an update of this package was not requested.

To enable extensions, verify that they are enabled in your .ini files:
-
- /usr/local/etc/php/conf.d/docker-php-ext-exif.ini
- /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.


.gitlab-ci.yml:
#
# https://gitlab.com/gitlab-org/gitlab/tree/master/lib/gitlab/ci/templates/PHP.gitlab-ci.yml
#
image: php:7.2

# Cache libraries in between jobs
cache:
  key: ${CI_COMMIT_REF_SLUG}
  paths:
    - vendor/

before_script:
  - docker-php-ext-install exif
  # Install and run Composer
  - curl --show-error --silent "https://getcomposer.org/installer" | php
  - php composer.phar install

test:
  script:
    - vendor/bin/phpunit --configuration phpunit.xml.dist --coverage-text --colors=never


Я включал в php.ini невключ. параметры, потом перезагружал апачь, чистил кеш, обновил композер но ничего не помогло.
  • Вопрос задан
  • 355 просмотров
Решения вопроса 2
Что в предложении "Install or enable PHP's gd extension" вам непонятно? Вон у вас exif уже устанавливается, добавьте по аналогии остальные расширения.
Ответ написан
OxCom
@OxCom
GitLab runner запускает job'ы в соответствии с конфигурацией .gitlab-ci.yml, в котором вы говорите, что image, в котором будет выполнятся ваш job - php:7.2.

Воспользуйтесь любым online переводчиком, чтобы понять, что вам необходимо установить расширения GD (Root composer.json requires PHP extension ext-gd) и PostgreSQL (pomm-project/cli 2.0.2 requires ext-pgsql), который в этом образе PHP просто нет:

$ docker run --rm php:7.2 php -m

[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib

[Zend Modules]


Как это сделать? Есть несколько вариантов:
- custom image на основе php:7.2
- перед запуском тестов, как вы делаете с docker-php-ext-install exif
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы