提问者:小点点

laravel与docker示例项目无法构建


我试图运行下面的项目与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客户端,仍然是相同的问题。


共1个答案

匿名用户

这里有几个问题,这就是为什么切换到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。