выборочная установка в файле Docker - PullRequest
0 голосов
/ 20 января 2019

Невозможно запустить make install из файла Docker, не знаю, где я иду не так.

Получение сообщения об ошибке ниже, когда docker-compose build запускается в Ubuntu

Step 6/10 : RUN make install
 ---> Running in c8f67e8de3b5
make: *** No rule to make target 'install'.  Stop.
ERROR: Service 'web' failed to build: 
       The command '/bin/sh -c make install' returned a non-zero code: 2

Iиметь следующую структуру, где сервер - это проект laravel , а в корне находится файл docker-compose.yml .

enter image description here

Ниже приведена структура сервера папки

enter image description here

docker-compose.yml файл

version: '3'

services:
  web:
    image: api_server
    container_name: api_server
    build:
      context: ./server/release
    ports:
      - 9000:80
    volumes:
      - ./server:/var/www/app

Dockerfile

FROM php:7.3.1-apache-stretch

RUN apt-get update -yqq && \
    apt-get install -y apt-utils zip unzip && \
    apt-get install -y nano && \
    apt-get install -y libzip-dev libpq-dev libpng-dev&& \
    a2enmod rewrite && \
    docker-php-ext-install gd mbstring && \
    docker-php-ext-install pdo_pgsql && \
    docker-php-ext-install pgsql && \
    docker-php-ext-configure zip --with-libzip && \
    docker-php-ext-install zip && \
    rm -rf /var/lib/apt/lists/*

RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer

COPY default.conf /etc/apache2/sites-enabled/000-default.conf

WORKDIR /var/www/app

RUN make install

RUN chown -R www-data:www-data /var/www/app/
RUN chmod -R 777 /var/www/app/storage

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

EXPOSE 80

сервер / Makefile

install:
    # some other commands
    composer install

refresh:
    # For testing
    php artisan migrate:refresh
    php artisan db:seed

make run:
    php artisan migrate:status
    php artisan serve

В основном, если я комментирую RUN make install и RUN chmod -R 777 /var/www/app/storage команды из Dockerfile это работает.Чтобы проверить, я попаду в контейнер и выполню вышеупомянутые 2 команды вручную, затем он заработает, показывая страницу laravel по умолчанию.

Поэтому я чувствую, что пытаюсь запустить вышеупомянутые 2 команды из Dockerfile я думаю, что исходный код не доступен в этот момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...