Комментарии

Узнайте какие публикации сейчас обсуждаются.

Хотите обсудить в реальном времени? Вступайте в Discord чат.

Установка и настройка Docker4Drupal на Ubuntu Peter пт, 22/10/2021 - 16:10

Здравствуйте!

Я поднимаю Drupal сайт на docker4drupal.

Нужно создать сабтему на основе Bootstrap 4 SASS - Barrio. В инструкции на drupal.org пишет что для этой темы нужно установить node.js, gulp, и все необходимые зависимости для gulp чтобы он мог скомпилировать sass в css:

https://www.drupal.org/docs/contributed-themes/bootstrap-4-sass-barrio-starter-kit/installation

В 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 контейнер не запущен: image

В файле 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'

Drupal 8: Modal API или как работать с модальными\диалоговыми окнами Niklan пн, 18/10/2021 - 14:34

Разве так не работает?:

    return [
      '#type' => 'link',
      '#title' => 'Contact with me!',
      '#url' => Url::fromRoute('entity.contact_form.canonical', ['contact_form' => $config['form']]),
      '#options' => [
        'attributes' => [
          'class' => ['use-ajax', 'button', 'button--small'],
          'data-dialog-type' => 'modal',
          'data-dialog-options' => Json::encode([
            'width' => 700,
          ]),
         'aria-describedby' => 'foo-bar',
        ]
      ],
      '#attached' => ['library' => ['core/drupal.dialog.ajax']],
    ];
Drupal 8: Modal API или как работать с модальными\диалоговыми окнами Savage пн, 18/10/2021 - 10:22

День добрый, Спасибо за гайд. Никто не знает, как можно в примере 3 передать в модальное окно кастомный aria-describedby? По умолчанию выводится aria-describedby ="drupal-modal", что не совсем то, что надо. В крайнем случаем дайте направление, куда "рыть"...

Установка и настройка Docker4Drupal на Ubuntu Niklan пт, 08/10/2021 - 07:11

Скорее всего потому что запускали докеры из под рута, лучше этого не делать и добавить пользователя в соответствующую группу и больше никогда не вызывать докер из под sudo.

Думаю нужно это всё же сделать, удалить .docker директорию принудительно из под рута, в следующий раз должна создаться с нужными правами или пофиксить ей владельца, если там есть важные данные.

Установка и настройка Docker4Drupal на Ubuntu Роман чт, 07/10/2021 - 11:16

Добрый день, Никита. Установил docker по данной инструкции и столкнулся с проблемой. А именно, у папки /home/мой-аккаунт/.docker каждый раз устанавливается владелец root группы root и при запуске docker постоянно выскакивает сообщение WARNING: Error loading config file: /home/roman/.docker/config.json: open /home/roman/.docker/config.json: permission denied. Применение chown помогает только до перезагрузки системы. Раньше такого не помню, использую xubuntu 20.04. Не знаешь, как эту проблему побороть?

Drupal 8: Плагин QueueWorker — выполнение очередей по крону Niklan чт, 30/09/2021 - 15:17

Они выполняются так, как диктует очередь, из которой они получаются обработчиком. То есть, это не решает обработчик, это решает очередь. Обработчик делает запрос элемента из очереди — что дали, с тем и работает.

По умолчанию очередь на ::claimItem() получает ближайший элемент очереди и блокирует его, затем кто-то что-то с ним делает, и либо удалит из очереди, в случае успешной обработки, либо отправляет на повторную обработку, либо происходит ошибка и этот элемент останется заблокированным на какой-то период, после чего разблокируется и снова станет доступен. Так вот очередь отдаёт ближайший не заблокированный элемент.

Иными словами, дефолтная очередь не гарантирует однопоточность и последовательность обработки данных. Выходит, что если организовать запуск обработки очереди одновременно в разных процессах — то очередь будет обрабатываться многопоточно, но обрабатывать они будут разные элементы.

Я предложу следующие решения (ведь они будут индивидуальны):

  • Отключить для обработчика работу в кроне, запускать исключительно в предсказуемом сценарии, например системным кроном при помощи drush queue:run NAME. Отключается просто — из аннотации обработчика нужно убрать параметр cron, тогда такой обработчик и не будет запускаться на регулярные операции запускаемые drush cron, /cron/{key} и вызовом из админки, но сработает на прямой вызов drush queue:run NAME.
  • Задекорировать нужную очередь и написать свою логику, как получаются элементы. Вот там как раз можно сделать чтобы они выполнялись строго последовательно, потому что процесс добавления в очередь и получение из очереди будет написан вами.
Drupal 8: Плагин QueueWorker — выполнение очередей по крону Антон Банников чт, 30/09/2021 - 14:21

Привет. Подскажи одну вещь. Вокер (элементы очереди) выполняется последовательно, или параллельно по умолчанию? Просто нам нужно строить сложный отчет. Он для каждого элемента очереди загружает отчет из БД, производит вычисления и сохраняет все обратно. И у нас ошибки лезут, особенно когда cron очередь обрабатывает