I-ilya
@I-ilya
Code generator

Как подключить Vue.js и node.js в Laravel в Docker?

Несколько раз пытался установить node.js по разным мануалам, но не получилось. Вот примерно что получается если я пытаюсь установить из контейнера (npm install):
5a031e214c471478887671.png

о вообще желательно чтобы он скачивался и устанавливался в контейнер с зависимостями. Как я понял 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"]


Буду очень благодарен за пошаговую инструкцию.
Заранее спасибо!
  • Вопрос задан
  • 3043 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы