gpt4 book ai didi

php - Docker - 安装 Composer/bin/sh : 1: php: not found curl: (23) Failed writing body (0 ! = 16133)

转载 作者:行者123 更新时间:2023-12-02 19:28:15 29 4
gpt4 key购买 nike

您好,我正在为我的 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 标签创建镜像时,它会执行以下指令:

步骤 6/22:运行 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 拥有一个基础镜像。基本上,这告诉 docker 从什么开始。在您的情况下,您有多个 FROM,因此 Docker 似乎只接受您提供的最后一个,在本例中为 node:8。所以永远不会安装 PHP。

要解决此问题,您需要选择一个基础镜像(例如 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。它可以帮助您一次构建和运行多个容器。

关于php - Docker - 安装 Composer/bin/sh : 1: php: not found curl: (23) Failed writing body (0 ! = 16133),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54135119/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com