[RUBY] [Rails] Flux de déploiement Heroku

mémorandum

Déployer avec Heroku je l'oublie souvent, donc pour l'enregistrement Puisqu'il s'agit d'un débutant, veuillez le signaler si vous faites une erreur. Les rails et MySQL sont utilisés dans cet environnement. J'espère qu'il sera utile pour les débutants en programmation!

Étape 1 Installez Heroku CLI

Il s'agit du premier déploiement uniquement. Pour la deuxième fois et les suivantes, veuillez vous reporter à l'étape 2.

Terminal

Entrez la commande suivante dans le répertoire à utiliser
% brew tap heroku/brew && brew install heroku

Cette commande vous permettra d'utiliser la commande heroku, qui vous permettra de vous connecter à Heroku depuis votre terminal.

Étape 2 Connectez-vous à Heroku

Entrez ce qui suit dans le terminal
% heroku login --interactive
  => Enter your Heroku credentials.
#Entrez votre adresse e-mail et appuyez sur la touche Entrée
  => Email:
#Entrez le mot de passe et appuyez sur la touche Entrée
  => Password:

Vous êtes maintenant connecté à Heroku!

Étape 3 Présentez rails_12factor

Gem avec des ressources pour exécuter des applications Rails sur un serveur tel qu'un environnement de production

#Ajouter à Gemfile
group :production do
  gem 'rails_12factor'
end
installation de gemmes
% bundle install
Modifié pour vous engager
% git add .
% git commit -m "gem rails_Ajout de 12 facteurs"

N'oubliez pas de valider et de pousser chaque modification car le déploiement utilise les données du référentiel distant.

Étape 4 Créez une application sur Heroku

Créez une application sur heroku avec la commande heroku create. heroku create Le nom de l'application que vous souhaitez créer

Entrez au terminal
Exemple
% heroku create heroku-test01

Étape 5 Rendre MySQL disponible sur Heroku

En ajoutant le module complémentaire ClearDB, vous pourrez utiliser MySQL dans Heroku.

Exécutez la commande suivante dans le terminal
heroku addons:add cleardb
Entrez ce qui suit dans le terminal
#Heroku, variable d'URL de base de données ClearDB_cleardb
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`

#Réinitialiser l'URL de la base de données
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}

À ce stade, vous pouvez utiliser MySQL. Avant de passer à l'étape 4, examinons brièvement les fichiers credentials.yml.enc et master.key.

Le fichier credentials.yml.enc est un fichier qui gère les informations que vous ne souhaitez pas divulguer à l'extérieur avec des rails.

Fichier master.key Un fichier est un fichier permettant de dupliquer l'instruction de code de credentials.yml.enc. Puisque master.key est un fichier important, il n'est pas géré par Git par défaut.

Étape 5.5 Double émission de credentials.yml.enc avec master.key

La commande suivante décrypte credentials.yml.enc avec master.key et le contenu peut être confirmé.

#Exécutez la commande suivante dans le terminal
% EDITOR="vi" bin/rails credentials:edit

Étape 6 Installez master.key sur Heroku

Comme je l'ai expliqué précédemment, master.key ne peut pas être géré par Git, vous devez donc définir des variables d'environnement. heroku config: définir le nom de la variable d'environnement = "valeur" Cela vous permet de définir des variables d'environnement sur Heroku et d'utiliser master.key.

Entrez ce qui suit dans le terminal
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
Vérifiez les paramètres de la variable d'environnement avec la commande suivante
% heroku config

Étape 7 Poussez l'application

Le contenu du référentiel distant est poussé vers l'application sur heroku avec la commande git push heroku master.

Exécutez dans le terminal ci-dessous
% git push heroku master

Jusqu'à présent, l'application a été reflétée sur Heroku! Cependant, les informations de migration ne sont pas reflétées ...

Étape 8 Effectuez la migration sur Heroku

Les informations de migration sont reflétées sur la base de données Heroku avec la commande heroku run rails db: migrate.

Exécutez la commande suivante dans le terminal
% heroku run rails db:migrate
#Vous pouvez vérifier les informations de l'application déployée sur Heroku avec la commande suivante
% heroku apps:info

Postscript

Lors du déploiement futur de fonctions supplémentaires dans l'environnement de production, vous pouvez facilement déployer en suivant Commit → Push → Step 7.

Résumé

Vive le bon travail! C'est la fin de tout le travail de déploiement! Je pense que Heroku est rarement utilisé sur le terrain, mais c'est une introduction très pratique au déploiement car c'est un outil qui peut être facilement déployé pour les débutants y compris moi-même! J'espère que cela aide quelqu'un.

Recommended Posts

[Rails] Flux de déploiement Heroku
Procédure de déploiement de Rails Heroku
Rails (environnement postgeresql. Ubuntu), déploiement heroku
[Rails] Flux lors de l'installation du dispositif de gemmes
rails modèle g Débit global
Création du premier LINEbot avec AWS Cloud9 (déploiement Rails + Heroku)
[rails] erreur de déploiement heroku ActionView :: Template :: Error (Mysql2 :: Error: Table --- n'existe pas):
Lancer des rails sur EC2 (déploiement manuel)
rails Le déploiement AWS n'est pas reflété
Déployer des rails sur Docker vers heroku
Flux de construction de l’environnement Rails problématiques [Windows 10]
[EC2 / Vue / Rails] Procédure de déploiement EC2 pour Vue + Rails
Refléter la mise à jour de l'application après le déploiement d'heroku
[Rails] Récapitulatif des incidents liés aux erreurs de déploiement AWS
Déployez heroku avec Rails6 (Cloud9 + Ubuntu) + MySQL
Déployer sur heroku avec Docker (Rails 6, MySQL)
Déployer sur Heroku [Ruby on Rails] Débutant
[heroku] run rails db: la migration ne fonctionne pas
[Rails / Heroku] Procédure de résolution d'erreur après push