2017-07-06 103 views
1

我想构建一个Dockerfile。/bin/sh:1:作曲家:找不到

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 

但是,当我只输入作曲家它能否正常显示的信息 我想这个问题是输入命令:

RUN composer install 

这里我使用的是Ubuntu 14.04

+0

你试图建立没有安装作曲家的码头工人的形象。 'RUN作曲者安装'试图在图像本身上运行'composer install',而不是主机。所以,实质上,你需要首先安装作曲家。 – Stacktrace

回答

1

由于Stacktrac e说,在运行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 
+0

mv:can not stat'composer.phar':没有这样的文件或目录 命令'/ bin/sh -c mv composer.phar/usr/local/bin/composer'返回非零代码:1 – Kit

+0

我认为composer.phar没有正确下载 – Kit

+0

我修改了Dockerfile。我已经把安装放在最开始。你可以再试一次吗? – Robert