Непрерывное развертывание приложения ROR из github / gitlab - PullRequest
0 голосов
/ 24 июня 2018

Я разработал простое приложение на Ruby on Rails (ROR), поместил его на github и gitlab и развернул на сервере Ubuntu, предоставленном Digital Ocean. Как я могу добиться непрерывного развертывания, чтобы всякий раз, когда я помещал изменения в gitlab / github, он вносил изменения на VPS (виртуальный частный сервер), то есть на сервер Ubuntu? Я использовал capistrano3 для развертывания.

1 Ответ

0 голосов
/ 24 июня 2018

Для GitLab

создайте файл .gitlab-ci.yml в корне приложения rails.

Поскольку вы используете Capistrano, вы хотите быть уверены, что ruby ​​предустановлен

Добавить image: ruby:2.3 в файл .gitlab-ci.yml

Далее нам нужно установить Capistrano при развертывании

Добавьте это к своему .gitlab-ci.yml

stages:
  - deploy

deploy_application:
  stage: deploy
  script:
    - gem install capistrano

Однако это становится рискованным, потому что Capistrano требует ssh для развертывания на вашем сервере. Желательно, чтобы вы использовали ssh-agent. Следовательно, мы снова изменим .gitlab-ci.yml, чтобы он выглядел следующим образом

image: ruby:2.3 #your_ruby_version
stages:
  - deploy

deploy_application:
  stage: deploy
  script:
   - which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )
    - eval $(ssh-agent -s)
    # add ssh key stored in SSH_PRIVATE_KEY variable to the agent store
    - ssh-add <(echo -e "$SSH_PRIVATE_KEY")
    - gem install capistrano
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...