码头工人-compose.yml
version: '3'
services:
web:
build: .
ports:
- 80:80
volumes:
- ./:/var/www/html
Dockerfile
FROM php:7.2-apache
# Set public directory as root for Apache
ENV APACHE_DOCUMENT_ROOT=/var/www/html/public
RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf
RUN sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf
WORKDIR /var/www/html
RUN apt-get update \
&& apt-get install -y git \
&& curl --silent --show-error https://getcomposer.org/installer | php \
&& php composer.phar install
Composer 在安装依赖项时抛出错误
错误:服务 'web' 无法构建:命令 '/bin/sh -c apt-get update && apt-get install -y git && curl --silent --show-error https://getcomposer.org/installer | php && php composer.phar install' 返回一个非零代码:1
同时,如果你直接进入容器并通过composer安装,那么一切正常。
大会 -
build: ...
这是关于形象的。这volumes: ...
是关于容器的。在组装时,该目录未挂载,因此没有
composer.json
.您可以在构建阶段()将 composer.json 文件“扔”到映像中
COPY ...
,但是在安装时,在您的情况下,目录将与本地目录重叠,这没有任何意义。也就是说,您需要考虑安装什么以及如何安装。您可以使用不同的方法进行开发和部署。通常,在开发阶段,安装命令是通过
docker-compose run/exec ...
. 在构建镜像的阶段,文件被复制,然后命令被执行。例如: