我正在使用 docker 作为小型 PHP 服务器,在其中我从 tutum/lamp:latest 构建了图像。我需要使用协议缓冲区,为此我首先需要安装作曲家。
我尝试通过执行以下操作来安装它:
docker pull composer/composer
docker run --rm -v $(pwd):/app composer/composer install
我有这些文件,包括位于
/app
中的composer.json,每次启动映像时它们都会从我的主机移动到那里。但是,我仍然收到 composer can't find a file composer.json in /app
的错误,这非常烦人。我使用this作为指导。
Composer 命令的
/app
部分与应用程序文件所在的实际路径无关。
在主机中(不在任何容器内),您只需将当前目录更改为composer.json
所在的应用程序目录,然后按原样运行给定的命令(无论应用程序文件的实际路径是什么) ).或者,鉴于
composer/composer
容器已被弃用,这将是一个更好的命令:
docker run --rm -v $PWD:/app composer install
(来自此处)。
./docker/Dockerfile
FROM php:8.2-zts-alpine3.17
COPY --from=composer/composer /composer /usr/bin/composer
RUN apk add bash
./docker-compose.yml
version: "3.8"
services:
php8.2-template:
build:
context: "./docker"
working_dir: "/application"
volumes:
- "./:/application"
ports:
- "80:80"
command: "php -S 0.0.0.0:80 /application/src/server.php"