Каталог поставщиков не найден
Я пытаюсь создать образ Docker, используя приведенный ниже Dockerfile:
FROM php:7.1-fpm
# Install server packages
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
htop \
nano \
mc \
wget \
cron \
bzip2 \
optipng \
jpegoptim \
imagemagick \
supervisor \
# for php extensions
libpq-dev \
libzip-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
libmagickwand-dev
# Install php packages
RUN docker-php-source extract \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install pgsql pdo_pgsql bcmath zip gd mcrypt opcache \
&& pecl install imagick \
&& docker-php-ext-enable imagick
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer
WORKDIR /app
COPY src /app
RUN usermod -u 1001 www-data \
&& chown -R www-data .
# Setup
COPY env/docker/app/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
COPY env/docker/app/php.ini /usr/local/etc/php/
COPY env/docker/app/crontab /var/app/
RUN mkdir -p /var/log/cron
RUN crontab /var/app/crontab
COPY env/docker/app/starter.sh /var/app/
RUN chmod 777 /var/app
ENTRYPOINT ["/var/app/starter.sh"]
Затем я помещаю созданный образ докера в среду RedHat Openshift, которую мы используем.
Однако, когда я загружаю веб-приложение, я получаю следующую ошибку
Warning: require(/app/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /app/bootstrap/autoload.php on line 17
Когда я проверяю модуль в OpenShift, нет каталога Vendor, поэтому кажется, что композитор не работал должным образом. Есть идеи?
Если уместно, я делаю сборку докера на моем компьютере с Windows 7, используя Vagrant и Centos 7.
2 ответа
Этот образ докера должен быть создан с вашим приложением с установленными зависимостями. Зависимости здесь - пакеты компоновщика. Итак, прежде чем строить свой образ, вы должны выполнить команду
композитор установить
в каталоге, который содержит файл composer.json.
Затем вы создаете свой образ докера.
Вам нужно запустить composer install
Команда изнутри проекта.
Вы установили двоичный файл композера, но не пакеты;)