2017-07-06 125 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