@mirexdoors

Как правильно деплоить node.js приложение?

Здравствуйте! Подскажите, пожалуйста, как правильно деплоить node.js приложение через bitbucket pipeline?

У меня есть вот такой yml
image: node:10.15.3

pipelines:
  custom: # Pipelines that are triggered manually
    deployment-to-production-init:
      - step:
          caches:
            - node
          script: # Modify the commands below to build your repository.
             - npm install
             - npm rebuild node-sass --force
             - apt-get update
             - apt-get -qq install git-ftp
             - echo "'_$(git status -uno --porcelain | wc -l)_'"
             - git status -uno --porcelain
             - echo "Initiating Push site:Source"
             - git ftp init --user $FTP_LOGIN --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/

    deployment-to-production:
      - step:
          caches:
            - node
          script: # Modify the commands below to build your repository.
             - npm install
             - npm rebuild node-sass --force
             - apt-get update
             - apt-get -qq install git-ftp
             - echo "'_$(git status -uno --porcelain | wc -l)_'"
             - git status -uno --porcelain
             - echo "Initiating Push site:Source"
             - git ftp push --user $FTP_LOGIN --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/

  branches: # Pipelines that run automatically on a commit to a branch
    master:
     - step:
        caches:
          - node
        script:
          - apt-get update
          - npm install
          - npm rebuild node-sass --force
          - git ftp push --user $FTP_LOGIN --passwd $FTP_PASSWORD ftp://$FTP_HOST/public_html/
          - /bin/bash start_server.sh

и bash-скрипт:
#!/usr/bin/env bash
npm install
export NODE_ENV=production
forever server.js


Идея в том, чтобы не заливать каждый раз папку node_modules, а устанавливать зависимости уже на сервере. Но почему-то проблема в том, что при выполнении start_server.sh - node_modules на фтп не устанавливаются, хотя в битбакетовской консоли скрипт вроде как запускается

+ /bin/bash start_server.sh
npm WARN expressapp@1.0.0 No repository field.
npm WARN expressapp@1.0.0 No license field.
audited 128 packages in 0.878s
found 0 vulnerabilities
  • Вопрос задан
  • 118 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы