2017-10-28 90 views
1

我想將BitBucket流水線實現到我的項目中,並且遇到安裝擴展mysqli的問題。我的配置是如何在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' 

所有步驟都做了完整的,但測試框架開始時,所有的測試由錯誤

Error: Class 'mysqli' not found

我是否需要啓用它在php.ini中失敗了嗎?或者以其他方式安裝?

回答

1

我想通了。你必須添加mysql-client,然後告訴它使用擴展名。這是我工作的管線:

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