我试图运行下面的项目与docker。
https://github.com/kyleferguson/laravel-with-docker-example
其中包含以下docker文件。
FROM php:7-fpm
RUN apt-get update && apt-get install -y libmcrypt-dev mysql-client \
&& docker-php-ext-install mcrypt pdo_mysql
WORKDIR /var/www
当我在运行“composer安装”之后运行“docker compose up”时。
我得到以下错误。
执行器未能运行[/bin/sh-c apt get update
你知道怎么解决这个问题吗?
注意:我已经尝试用mysql客户端和默认我的客户端替换mariadb客户端,仍然是相同的问题。
这里有几个问题,这就是为什么切换到mariadb本身不起作用的原因。
有一种方法可以更清楚地说明问题所在,那就是重击从基本映像创建的容器,然后手动运行命令。
docker run -it php:7-fpm bash
从那里,如果您单独运行每个安装,您将看到您失败的地方:
# apt-get install -y mysql-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package mysql-client
要么添加一个提供mysql的repo,要么使用mariadb。
# docker-php-ext-install mcrypt
error: /usr/src/php/ext/mcrypt does not exist
在php7.2中mCrypt被删除了,所以如果你真的需要它,你需要使用epl来安装它。
除非你运行的是一个非常旧的Laravel版本,否则你不应该需要mcrypt。