Вы смешиваете команды.Композитор не «служит».Php имеет встроенный сервер разработки для "обслуживания".
Подробнее об этом можно прочитать здесь: https://laravel.com/docs/4.2/quick
Чтобы запустить и запустить Laravel, выполните следующие действия:
1 - Запустите это в laravel-app
папка: composer install
2 - Создайте файл Docker со следующим содержимым:
FROM php:7
RUN apt-get update -y && apt-get install -y libmcrypt-dev openssl
RUN docker-php-ext-install pdo mcrypt mbstring
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /app
COPY . /app
CMD php artisan serve --host=0.0.0.0 --port=8000
EXPOSE 8000
3 - Создайте свой образ докера: docker build -t my-laravel-image .
4 - Наконец заменитесодержание вашего docker-compose:
version: '3'
services:
web:
image: my-laravel-image
ports:
- 3021:8000
volumes:
- ./laravel-app:/app
Более полное руководство можно найти здесь (не мое): https://www.techiediaries.com/docker-compose-laravel/
РЕДАКТИРОВАТЬ:
Чтобы использовать официальное изображение для создания, вы можете просто сделать это:
version: '3'
services:
composer:
image: composer:latest
working_dir: /app
entrypoint: php artisan serve --host=0.0.0.0
depends_on:
- php
volumes:
- ./laravel-app:/app
ports:
- "3021:8000"
Убедитесь, что ./laravel-app
содержит проект laravel.В противном случае это не сработает!