Я пытаюсь запустить контейнер веб-сервера с nginx и сервером php-fpm, на котором запущено приложение Laravel.В этом каталоге находятся внешний и внутренний каталог, поэтому мои пути не отключены в файлах конфигурации.
Я устанавливаю файл docker-compose.yml
version: '2'
services:
webserver:
build:
context: ./
dockerfile: webserver.docker
volumes:
- /home/colesam/Documents/code/todo/backend:/var/www
ports:
- "8080:80"
links:
- backend
backend:
build:
context: ./
dockerfile: backend.docker
volumes:
- ./home/colesam/Documents/code/todo/backend:/var/www
И php-fpm Dockerfile (backend.docker)
FROM php:7.2-fpm
RUN apt-get update -y && apt-get install -y libmcrypt-dev openssl
RUN pecl install mcrypt-1.0.2
RUN docker-php-ext-enable mcrypt
RUN docker-php-ext-install pdo mbstring
RUN apt-get install -y apt-transport-https
RUN apt-get install -y curl
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN chown -R www-data:www-data /var/www
VOLUME ["/var/www"]
RUN ls -al /var/www
WORKDIR /var/www
RUN composer install
И Dockerfile веб-сервера nginx (webserver.docker)
FROM nginx:1.10
ADD ./vhost.conf /etc/nginx/conf.d/default.conf
WORKDIR /var/www
По какой-то причине, когда я запускаю docker-compose up -d --build
, я всегда терплю неудачу на этом этапе процесса сборки:
Step 13/13 : RUN composer install
---> Running in 65bb97f03004
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer could not find a composer.json file in /var/www
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
ERROR: Service 'backend' failed to build: The command '/bin/sh -c composer install' returned a non-zero code: 1
С последней строки вывода это выглядит так, как будто произошел сбой, поскольку / var / www / пусто и файлы не скопированы, как composer.json
.Я много оглядывался по сторонам, и эта проблема переполнения стека , казалось, была наиболее связана с тем, что происходило, но я думаю, что уже следую всему, что предлагает принятый ответ.
Нужно ли включатькоманда COPY
или ADD
, хотя я монтирую папку через том?