Невозможно запустить 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](https://i.stack.imgur.com/2eI0t.png)
Ниже приведена структура сервера папки
![enter image description here](https://i.stack.imgur.com/I11Ld.png)
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 я думаю, что исходный код не доступен в этот момент.