Я хочу внедрить в свой проект трубопроводы 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? Или установить его другим способом?
Я понял. Вы должны добавить 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
Других решений пока нет …