Синхронизируйте папку поставщика из контейнера с папкой хоста

#php #docker #docker-compose #vendor

#php #docker #docker-compose #поставщик

Вопрос:

итак, что я пытаюсь сделать, так это.

  1. создание образа docker
  2. запустите установку composer в Dockerfile
  3. на моем хост-компьютере также есть папка поставщика с установленными зависимостями

С тех пор я завершил то, что мне удалось установить зависимости в моем контейнере, и все работает нормально. Хотя моя папка поставщика на моем хост-компьютере пуста. Итак, моя IDE (phpstorm) не распознает классы из установленных пакетов (очевидно), и это проблема, которую мне нужно решить.

Что я пробовал:

  1. создать том: похоже, это скопировало пустую папку поставщика и перезаписало папку поставщика в контейнере
  2. запустите composer install после запуска контейнера (это занимает слишком много времени, и он всегда устанавливает все пакеты снова … неприемлемо)

мой docker-compose.yml:

 services:
  web:
    build:
      context: .
      dockerfile: ./config/web/Dockerfile
    image: web
    container_name: WebServer
    ports:
      - "8081:80"
    volumes:
      - ./src:/var/www/notification
      - /var/www/notification/vendor
    networks:
      - network
 

и мой файл Dockerfile:

 FROM php:7.4-apache

# Install GIT
RUN apt-get update amp;amp; 
    apt-get upgrade -y amp;amp; 
    apt-get install -y git amp;amp; 
    apt-get install -y nano amp;amp; 
    apt-get install -y libzip-dev amp;amp; 
    apt-get install -y zip unzip

# Install ext for PHP
RUN docker-php-ext-install pdo pdo_mysql zip


# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

# Enable apache2 mod_rewrite module
RUN a2enmod rewrite

WORKDIR /var/www/smthing

COPY ./src/composer.json ./src/composer.lock ./

RUN composer install
 

Есть ли способ синхронизировать это как-то автоматически, чтобы это не заняло целую вечность?

Заранее всем спасибо 🙂

Комментарии:

1. Я выполнил точно такую же конфигурацию, которую вы выполнили с проектом docker env. Вы нашли способ не переустанавливать все dep после запуска контейнера?