Несколько раз пытался установить node.js по разным мануалам, но не получилось. Вот примерно что получается если я пытаюсь установить из контейнера (npm install):
о вообще желательно чтобы он скачивался и устанавливался в контейнер с зависимостями. Как я понял Vue будет работать в Laravel из коробки, но я пока застрял на установке npm Исходные данные: Laravel 5.5. Docker:
# Версия docker-compose
взято
отсюда version: '2'
services:
nginx:
# используем последний стабильный образ nginx
image: nginx:latest
#маршрутизируем порты
ports:
- "8080:80"
- "443:443"
# монтируем директории, слева директории на основной машине, справа - куда они монтируются в контейнере
volumes:
- ./hosts:/etc/nginx/conf.d
- ./www:/dev/www
- ./logs:/dev/log/nginx
# nginx должен общаться с php контейнером
links:
- php
php:
# у нас свой образ для PHP, указываем путь к нему и говорим что его надо собрать
build: ./images/php
# этот образ будет общаться с mysql
links:
- mysql
# монтируем директорию с проектами
volumes:
- ./www:/dev/www
mysql:
image: mysql:8
ports:
- "3306:3306"
volumes:
- ./mysql:/dev/lib/mysql
# задаем пароль для root пользователя
environment:
MYSQL_ROOT_PASSWORD: secret
и сам Dockerfile
FROM php:7.1-fpm
# Необязательная строка с указанием автора образа
# RUN выполняет идущую за ней команду в контексте нашего образа.
# В данном случае мы установим некоторые зависимости и модули PHP.
# Для установки модулей используем команду docker-php-ext-install.
# На каждый RUN создается новый слой в образе, поэтому рекомендуется объединять команды.
RUN apt-get update && apt-get install -y \
curl \
wget \
git \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
libpng12-dev \
&& docker-php-ext-install -j$(nproc) iconv mcrypt mbstring mysqli pdo_mysql zip \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
# Куда же без composer'а.
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Добавим свой php.ini, можем в нем определять свои значения конфига
ADD php.ini /usr/local/etc/php/conf.d/40-custom.ini
# Указываем рабочую директорию для PHP
WORKDIR /dev/www
# Запускаем контейнер
# Из документации: The main purpose of a CMD is to provide defaults for an executing container. These defaults can include an executable,
# or they can omit the executable, in which case you must specify an ENTRYPOINT instruction as well.
CMD ["php-fpm"]
Буду очень благодарен за пошаговую инструкцию.
Заранее спасибо!