Docker. Не прокидываются volumes с хост машины в контейнер
Проблема возникает на ubuntu с docker desktop. Повторял на wsl, там все в порядке. Так же устанавливал отдельно docker compose и docker engine (то есть без docker desktop) и так оно тоже корректно работало. При создании контейнера в нём нет всех директорий проекта.
Это структура моего проекта:
При создании оказывается только docker/ и tmp. И в тоже время в директории docker нет директории nginx.
version: "3"
services:
app:
build:
context: .
dockerfile: "docker/${APP_ENV}/app/Dockerfile"
volumes:
- .:/var/www
depends_on:
- db
nginx:
image: nginx
ports:
- "8000:80"
volumes:
- ./docker/${APP_ENV}/nginx/:/etc/nginx/conf.d
- ./:/var/www
depends_on:
- app
adminer:
image: adminer
restart: always
ports:
- "8070:8080"
container_name: adminer
db:
image: postgres
restart: always
volumes:
- ./tmp/db:/var/lib/pgsql
environment:
POSTGRES_DB: '${DB_DATABASE}'
POSTGRES_PASSWORD: '${DB_PASSWORD}'
POSTGRES_USER: '${DB_USERNAME}'
ports:
- "8030:5432"
container_name: pgsql
networks:
network:
driver: bridge
Это мой Dockerfile:
# Используем официальный образ PHP 8.0 и добавляем расширения для работы с Laravel
FROM php:8.1-fpm
RUN apt-get update && \
apt-get install -y \
apt-utils \
libpq-dev \
libpng-dev \
libzip-dev \
zip unzip \
libpq-dev \
&& docker-php-ext-install pdo pdo_pgsql && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# Устанавливаем Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Копируем исходный код проекта в контейнер
COPY . /var/www
# Устанавливаем зависимости
WORKDIR /var/www
# RUN composer install --no-interaction --prefer-dist --optimize-autoloader
RUN chown -R www-data:www-data storage/ bootstrap/cache
RUN chmod -R 775 storage bootstrap/cache
# Определяем точку входа для запуска приложения
# CMD ["php", "artisan", "key", "generate"]
# ENTRYPOINT [ "docker/dev/docker-entrypoint.sh" ]