簡體   English   中英

Docker-安裝Composer / bin / sh:1:php:找不到curl:(23)編寫體失敗(0!= 16133)

[英]Docker - Installing Composer /bin/sh: 1: php: not found curl: (23) Failed writing body (0 != 16133)

您好,我正在為我的laravel項目創建一個dockerfile。 至此:

FROM php:7.2-cli
FROM nginx
FROM node:8
MAINTAINER zachary tyhacz

# does not install mysql
# mysql is outside container

RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

WORKDIR /var/www/public
COPY . /var/www/public

COPY nginx.conf /etc/nginx/sites-available/domain
RUN ln -s /etc/nginx/sites-available /etc/nginx/sites-enabled

RUN npm install
RUN composer install

# sets up the database
CMD php artisan migrate:fresh --seed

# resets configuration files
CMD php artisan config:cache

# refreshes routes
CMD php artisan route:cache

# enables serve
CMD php artisan serve --host=0.0.0.0 --port=436

EXPOSE 8080/udp
EXPOSE 8080/tcp
EXPOSE 80/udp
EXPOSE 80/tcp
EXPOSE 436/tcp
EXPOSE 436/udp

在docker標簽上創建映像后,它會轉到以下說明:

Step 6/22 : RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

並拋出此錯誤並停止。

/bin/sh: 1: php: not found
curl: (23) Failed writing body (0 != 16133)

我不確定出了什么問題。 我認為這可能是權限問題或目錄問題。

感謝任何人提供幫助我的建議

另外,我幫助我創建此dockerfile的參考是這樣的: https ://buddy.works/guides/laravel-in-docker

您只能在Dockerfile中使用FROM使用一個基本映像。 基本上,這告訴碼頭工人從什么開始。 在您的情況下,您有幾個FROM ,因此看來Docker只是采用了您提供的最后一個,在本例中為node:8 因此,從未安裝過PHP。

要解決此問題,您需要選擇一個基本映像(例如php),並在此基礎上安裝其他依賴項,以便可以使用RUN手動將nginx和node安裝在php映像之上。 您可能還需要考慮構建單獨的nginx圖像。 在可能的情況下,將服務分成不同的映像是一種很好的做法。

另外,不要使用多個CMD條目,而應使用小的啟動Shell腳本。 例如

#!/usr/bin/env bash
set -e
php artisan migrate:fresh --seed
php artisan config:cache
php artisan route:cache
exec php artisan serve --host=0.0.0.0 --port=436

將其放入名為start.sh或類似名稱的腳本中,然后在Dockerfile中使用

CMD ["./start.sh"]

然后,您可能還需要為nginx服務啟動另一個容器。 您可以使用docker run手動執行此操作,但我建議您檢查docker-compose。 它可以幫助您一次構建和運行多個容器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM