/bin/sh: 1: composer: 没有找到

4

我正在尝试构建一个Dockerfile。

FROM php:7

RUN mkdir -p /home/winpc/test/laravelApp/app
WORKDIR /home/winpc/test/laravelApp/app


COPY composer.json /home/winpc/test/laravelApp/app
RUN composer install

COPY . /home/winpc/test/laravelApp/app

CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181

但是当我运行构建命令时,它显示如下信息:
docker build -t lar-app .
/bin/sh: 1: composer: not found
The command '/bin/sh -c composer install' returned a non-zero code: 127

但是当我只输入composer时,它会正确显示信息。我想问题出在命令上:

RUN composer install

我正在使用Ubuntu 14.04操作系统


你正在尝试创建的 Docker 镜像中没有安装 Composer。RUN composer install 命令会在镜像本身上运行 composer install,而不是在主机上运行。因此,你需要先安装 Composer。 - Stacktrace
1个回答

3
根据Stacktrace的提示,在运行composer命令之前需要安装composer。
我已经添加了以下内容:
RUN wget https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc45324414a6b1f9df2/web/installer -O - -q | php -- --quiet
RUN mv composer.phar /usr/local/bin/composer

那么您的Dockerfile将是:

FROM php:7

# Install composer:
RUN wget https://raw.githubusercontent.com/composer/getcomposer.org/1b137f8bf6db3e79a38a5bc45324414a6b1f9df2/web/installer -O - -q | php -- --quiet
RUN mv composer.phar /usr/local/bin/composer

RUN mkdir -p /home/winpc/test/laravelApp/app
WORKDIR /home/winpc/test/laravelApp/app

COPY composer.json /home/winpc/test/laravelApp/app
RUN composer install

COPY . /home/winpc/test/laravelApp/app

CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181

mv: 无法访问 'composer.phar': 没有那个文件或目录 命令 '/bin/sh -c mv composer.phar /usr/local/bin/composer' 返回了非零代码: 1 - Kit
我认为composer.phar没有下载成功。 - Kit
运行 apk update
&& 安装 ca-certificates wget
&& 更新 ca 证书
- Kit
你需要在 Dockerfile 中安装 PHP 的 mcrypt。 - Robert
感谢您的时间和考虑...问题已解决。 - Kit
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接