AWS - ElasticBeanstalk - Платформа PHP - Запуск команд NPM - PullRequest
1 голос
/ 17 октября 2019

AIM:

  1. Требуется запустить приложение WordPress и узла на одном и том же ec2.
  2. Развертывание приложения WordPress и узла, используя ElasticBeanstalk.
  3. Выбранная платформа ElasticBeanstalk - PHP
  4. У меня есть две папки в корневой папке - WordPressSite и NodeApp.
  5. Сайт WordPress работает по умолчанию, как и ожидалось, так как выбранная платформа EB - PHP
  6. NodeApp не работает на порте 3000.

Пробовал после

  1. Письменные команды и команды контейнера помещали их .ebextensions - которыйустановит, создаст узел, npm и запустит приложение узла
  2. Проверьте ниже файл конфигурации ebextension.
commands:
    01_node_download:
        cwd: /tmp
        test: '[ ! -f /usr/bin/node ] && echo "node not installed"'
        command: 'sudo curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -'
    02_node_install:
        cwd: /tmp
        test: '[ ! -f /usr/bin/node ] && echo "node not installed"'
        command: 'sudo yum -y install nodejs'
    03_create_post_dir:
        command: "mkdir /opt/elasticbeanstalk/hooks/appdeploy/post"
        ignoreErrors: true
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/npm_run_job.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      cd /var/app/current/NodeApp
      npm run start
container_commands:
    03_npm_install:
        cwd: /var/app/ondeck/NodeApp
        command: 'sudo npm install'
    04_npm_config_set:
        cwd: /var/app/ondeck/NodeApp
        command: 'npm config set scripts-prepend-node-path auto'

Объяснение файла конфигурации

  1. Мы написали команды для установки узла.
  2. Создана папка для выполнения после развертывания, если она не существует.
  3. Записанные файлы: скрипт, содержащий код для запуска пакета после развертывания, который содержитnpm run start (общий узелскрипт запуска приложения)
  4. Контейнерные команды для установки узловых модулей и установки нескольких флагов.

Результат

  1. Когда мы делаем ebdeploy, eb status никогда не завершает процесс - из-за выполнения «npm run start» на платформе php при развертывании. Развертывание выполняется в течение очень долгого времени, пришлось вручную прервать операцию, без регистрации, почему это не работает.
  2. Попытка развернуть код без файлов: сценарий после развертывания, развертывание работает нормально, всеМодули узлов и другие команды были выполнены без проблем. Вручную ssh to ec2 и выполнив команду «npm run start» в папке приложения узла, это не вызывает ошибок и запускает. приложение узла на 3000.
  3. Когда мы пытаемся выполнить одну и ту же команду с помощью расширений ebextensions после развертывания или команды или container_commands, процесс развертывания eb не отвечает в течение длительного времени - приложение узла также работает, ноasticbeanstalkРазвертывание не отвечает?

Итак, вопрос в том, можем ли мы запустить приложение узла с помощью команд eb на php-платформе Flexiblebeanstalk?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...