В идеале вы должны использовать образ Composer в многоступенчатой сборке, чтобы избежать необходимости устанавливать его и все его зависимости на хосте.
Для этого создайте файл Docker следующим образом:
FROM composer:1.8 AS composer
FROM php:7.1-apache-stretch
COPY --from=composer /usr/bin/composer /usr/bin/composer
WORKDIR /app
COPY . .
# Place here your command that uses Composer
RUN composer install
Примечание: вам нужно просмотреть команду RUN, так как я не являюсь разработчиком PHP ....;)
Теперь docker-compose.yml выглядит примерно так:
version: "3"
services:
app:
build: .
image: php-app:1.0
container_name: "php-app"
ports:
- "8080:80"
Вам больше не нужен том, так как файлы копируются в образ во время сборки.
Создайте образ и запустите службу:
docker-compose up --build -d