Что я неправильно написал в конфигах сервиса node.js необходимого для сабтемы Bootstrap 4 SASS - Barrio?

Аватар пользователя Joseph Joseph 22 октября в 14:34

Поднимаю Drupal сайт на docker, а именно - docker4drupal (набор готовых образов php, nginx, mariadb и т.д.)

Нужно создать сабтему на основе Barrio Sass.
В инструкции на drupal.org пишет что для этой темы нужно установить node.js, gulp, и все необходимые зависимости для gulp чтобы он мог скомпилировать sass в css:
https://www.drupal.org/docs/contributed-themes/bootstrap-4-sass-barrio-s...

В docker-compose.yml я прописал такие конфиги для сервиса node.js:

node:
    image: wodby/node:$NODE_TAG
    container_name: "${PROJECT_NAME}_node"
    working_dir: /var/www/html/web/themes/custom/bootstrap_sass_bcnews
    labels:
    - "traefik.http.services.${PROJECT_NAME}_node.loadbalancer.server.port=3000"
    - "traefik.http.routers.${PROJECT_NAME}_node.rule=Host(`node.${PROJECT_BASE_URL}`)"
    expose:
    - "3000"
    volumes:
    - ./var/www/html/web/themes/custom/bootstrap_sass_bcnews:/var/www/html
    command: sh -c 'apt-get install python3-software-properties gnupg2 curl wget -y && curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash - && sudo apt-get install -y nodejs && cd /var/www/html/web/themes/custom/bootstrap_sass_bcnews && npm install --global gulp-cli && npm install'

Путь к Drupal проекту в моей системе: /home/perceval/Desktop/bcnews_project
Путь к теме в контейнере: /var/www/html/web/themes/custom/bootstrap_sass_bcnews

После запуска контейнеров docker-compose up -d и проверки docker ps, я вижу что node.js контейнер не запущен:

В файле docker-compose.yml я правил только три строчки working_dir, volumes, command. И подозреваю, что-то не так написал в последних двух.

Файл .env:

### --- NODE ---

NODE_TAG=12-dev-0.84.0

В чем проблема? И вообще, правильно ли я написал команды в строке command?

P.S.:
Для удобства чтения я напишу вам команды в столбец написанные мною в command в файле docker-compose.yml:

 sh -c 'apt-get install python3-software-properties gnupg2 curl wget -y &&
 curl -fsSL https://deb.nodesource.com/setup_12.x | sudo -E bash - &&
 sudo apt-get install -y nodejs &&
 cd /var/www/html/web/themes/custom/bootstrap_sass_bcnews &&
 npm install --global gulp-cli &&
 npm install'

Комментарии

Аватар пользователя Joseph Joseph 4 ноября в 20:07

Решение:
1. Node.js образ в docker4drupal использует `apk` вместо of `apt-get ` для установки дополнительных пакетов.
2. Этот образ уже содержит node.js. Мне не нужно писать команду установки node.js в строке `command:`.
Вот как должна выглядеть конфигурация сервиса node.js в моем случае:

  node:
    image: wodby/node:$NODE_TAG
    container_name: "${PROJECT_NAME}_node"
    working_dir: /var/www/html/web/themes/custom/bcnews_bootstrap_sass
    labels:
    - "traefik.http.services.${PROJECT_NAME}_node.loadbalancer.server.port=3000"
    - "traefik.http.routers.${PROJECT_NAME}_node.rule=Host(`node.${PROJECT_BASE_URL}`)"
    expose:
    - "3000"
    volumes:
    - ./:/var/www/html:cached
    command: sh -c 'cd /var/www/html/web/themes/custom/bcnews_bootstrap_sass && npm init --yes && npm install --global gulp-cli && npm install --save-dev gulp && npm install && gulp'