2017-05-26 44 views
1

我是新來的docker,我試圖設置它以便與Laravel 5.1一起運行。我目前收到以下錯誤將mbstring添加到docker image for laravel 5應用程序

Call to undefined function Illuminate\Foundation\Bootstrap\mb_internal_encoding() in /var/www/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php:43 

我相信這是因爲沒有安裝PHP mbstring推廣。我試圖將php-mbstring添加到Docker文件,但它似乎並沒有工作。

這裏是我的全部泊塢文件

FROM php:5.6.30-fpm 

    RUN apt-get update && apt-get install -y libmcrypt-dev \ 
     mysql-client libmagickwand-dev --no-install-recommends \ 
     && pecl install imagick \ 
     && docker-php-ext-install mcrypt pdo_mysql \ 
     && docker-php-ext-install php-mbstring 

我然後運行從應用程序文件夾sudo docker compose up。這似乎並沒有解決這個錯誤。我如何知道擴展是否正確安裝?

編輯:我已經包括以下

version: '2' 
services: 

    # The Application 
    app: 
    build: 
     context: ./ 
     dockerfile: app.dockerfile 
    working_dir: /var/www 
    volumes: 
     - ./:/var/www 
    environment: 
     - "DB_PORT=3306" 
     - "DB_HOST=database" 

    # The Web Server 
    web: 
    build: 
     context: ./ 
     dockerfile: web.dockerfile 
    working_dir: /var/www 
    volumes_from: 
     - app 
    ports: 
     - 8080:80 

    # The Database 
    database: 
    image: mysql:5.6 
    volumes: 
     - dbdata:/var/lib/mysql 
    environment: 
     - "MYSQL_DATABASE=homestead" 
     - "MYSQL_USER=homestead" 
     - "MYSQL_PASSWORD=secret" 
     - "MYSQL_ROOT_PASSWORD=secret" 
    ports: 
     - "33061:3306" 

volumes: 
    dbdata: 

回答

0

泊塢窗,compose.yml文件中刪除php-前綴,它應該工作的罰款。您也可以在以前的docker-php-ext-install命令運行它:

docker-php-ext-install mcrypt pdo_mysql mbstring

+0

感謝您的回覆。我試圖刪除php-並仍然得到相同的錯誤。關於在以前的'docker-php-ext-install'上運行的很棒的提示。 – SamBremner

+0

奇數。你可以在你的問題上發佈你的docker-composer.yml,以便我們可以嘗試重新創建這個問題? :) –

+0

我已經將docker-compose.yml文件添加到我的問題中。當你有機會時請看看。謝謝。 – SamBremner

0

在Ubuntu PHP-MBSTRING與PHP常見和版本像php7.1-mbstring的具體mbstring的依賴可能導致的問題。您可以使用下面的命令檢查依賴關係;

apt-cache depends php-mbstring 
+0

感謝您的回覆,我試圖從docker中使用命令'sudo docker exec -it 81a8f6eea495 apt-cache depends php-mbstring'來查找依賴關係,但它只是返回'未找到包「。我也嘗試在Docker文件中添加common和php-common,但我仍然得到相同的錯誤。 – SamBremner