#php #docker #docker-compose #vendor
#php #docker #docker-compose #поставщик
Вопрос:
итак, что я пытаюсь сделать, так это.
- создание образа docker
- запустите установку composer в Dockerfile
- на моем хост-компьютере также есть папка поставщика с установленными зависимостями
С тех пор я завершил то, что мне удалось установить зависимости в моем контейнере, и все работает нормально. Хотя моя папка поставщика на моем хост-компьютере пуста. Итак, моя IDE (phpstorm) не распознает классы из установленных пакетов (очевидно), и это проблема, которую мне нужно решить.
Что я пробовал:
- создать том: похоже, это скопировало пустую папку поставщика и перезаписало папку поставщика в контейнере
- запустите 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 после запуска контейнера?