Использование npm db-migrate с Elasti c Beanstalk - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь автоматизировать развертывание Elasti c Beanstalk приложения nodejs, использующего npm db-migrate. Я прочитал AWS документы для Настройка программного обеспечения на Linux Серверы , кажется, я должен использовать команду контейнера. Я создал файл 10_db_migrate.config и включил эту команду:

container_commands:
  dbmigrate:
    command: "./node_modules/db-migrate/bin/db-migrate up -e production"
    leader_only: true

Я перепробовал много комбинаций для пути, включая / tmp / deploy / application / node_modules / ..., но все они возвращаются со следующей ошибка:

ИНФОРМАЦИЯ [2903] - [Обновление приложения code-pipeline-1579538046076-21b269f7103572f7a9d500d4158751de32e395c4@20/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_MyAppAPI/Command dbmigrate]: сбой выполнения операции, поскольку: / usr / bin / env: узел: нет такого файла или каталога (ElasticBeanstalk :: ExternalInvocationError )

Чего мне не хватает?

1 Ответ

0 голосов
/ 21 января 2020

Я получил это работает. Частично проблема заключалась в том, что я пытался сделать это сложнее, чем нужно. То, что мне действительно нужно было сделать, пришло из этой записи . Ниже моя последняя команда container_command:

container_commands:
  00_node_binary:
    command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/node /bin/node"
  10_npm_binary:
    command: "ln -sf `ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin/npm /bin/npm"  
  20_dbmigrate:
    command: "./node_modules/.bin/db-migrate up"
    leader_only: true

Я нашел это некоторое время назад, но подумал, что мне также нужно получить переменные среды, чтобы сделать то, что я хотел. После некоторого дополнительного тестирования я смог определить, что мне не нужен доступ к переменным среды, так что это сработало для того, что мне было нужно. Еще хотелось бы узнать, как ссылаться на переменные среды для создания подготовленного оператора в db-migrate для Elasti c Beanstalk, но сейчас требуются более насущные потребности.

...