Как настроить mysqli в конвейерах BitBucket

Я хочу внедрить в свой проект трубопроводы BitBucket, и у меня проблема с расширением установки mysqli. Моя конфигурация

image: php:7.1.1

pipelines:
default:
- step:
caches:
- composer
script:
- docker-php-ext-install mysqli pdo pdo_mysql
- apt-get update && apt-get install -y unzip
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer install
- php vendor/bin/tester -p php --setup "tests/inc/setup.php" "tests/cases/"services:
- mysql

definitions:
services:
mysql:
image: mysql
environment:
MYSQL_DATABASE: 'test'
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_USER: 'test'
MYSQL_PASSWORD: 'testpass'

Все шаги выполнены, но когда запускается тестовая среда, все тесты не пройдены по ошибке

Ошибка: класс «mysqli» не найден

Должен ли я включить его в php.ini? Или установить его другим способом?

1

Решение

Я понял. Вы должны добавить mysql-клиент и затем сказать ему использовать расширение. Это конвейер, который работает для меня:

pipelines:
default:
- step:
name: php-56-mysql-latest
image: php:5.6-apache
script:
# install dependancies and mysql client
- apt-get update && apt-get install -y unzip mysql-client

# enable the mysqli extension
- docker-php-ext-install mysqli

# install composer
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer -V
- composer config -g github-oauth.github.com 9351b824c3e8f8fea61c0349f9b6aed8295878a8
- composer install --no-interaction --no-progress --prefer-dist

# fake sendmail so emails don't bomb
- ln -s /bin/true /usr/sbin/sendmail

# run your composer tests
- composer test
services:
- mysql

definitions:
services:
mysql:
image: mysql:latest
environment:
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: root
1

Другие решения

Других решений пока нет …