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!
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.
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!
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.
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
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.
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
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
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 ...
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
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.
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