将mbstring添加到laravel 5应用程序的docker映像

我是新来的docker工人,我试图设置它为了运行Laravel 5.1。 我目前得到以下错误

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

我相信这是因为没有安装mbstring php扩展。 我试图添加php-mbstring到Docker文件,但它似乎并没有工作。

这是我的完整的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从应用程序文件夹组成。 这似乎并没有解决这个错误。 如何知道扩展是否正确安装?

编辑:我已经包括在下面的docker-compose.yml文件

 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: 

删除php-前缀,它应该工作正常。 你也可以在以前的docker-php-ext-install命令中运行它:

docker-php-ext-install mcrypt pdo_mysql mbstring

在ubuntu上php-mbstring具有php-common和版本特定的mbstring,如php7.1-mbstring,可能会导致问题的依赖。 你可以用下面的命令检查依赖关系。

 apt-cache depends php-mbstring