Faits saillants de la clé:
git push
. Un niveau gratuit est disponible pour les applications à faible trafic. Procfile
dicte ce que Heroku exécute. Après avoir configuré le Procfile
et l'ajout au référentiel, le déploiement est réalisé en utilisant git push
. Les commandes supplémentaires gèrent la configuration persistante, les processus d'échelle et la gestion des rollbacks. Spécial merci à Matthew Wilkin pour ses précieuses contributions de revue par les pairs.
Ce guide explique Heroku et son processus de déploiement d'application Web.
Heroku est une plate-forme gérée pour le déploiement rapide des applications Web. Il provient automatiquement les ressources du serveur, simplifiant le déploiement vers une opération git push
. Un niveau gratuit permet des déploiements initiaux faciles et gratuits (sous réserve des limitations du trafic).
Bien que rentable par rapport aux équipes DevOps dédiées, les applications à haut trafic peuvent entraîner des coûts importants (chaque dyno coûte 25 $ par mois, avec des ajouts de base de données augmentant les dépenses).
avant de commencer:
pour suivre ce guide, assurez-vous que vous avez:
Si vous avez un projet prêt à déploier, sautez la section suivante et passez à "Créer un projet Heroku".
Exemple de projet:
Cet exemple utilise une application Python Flask. Vous pouvez adapter le processus pour d'autres projets. Si vous avez votre propre projet, sautez cette section.
Créer un répertoire de projet (par exemple, myproject
):
<code>/myproject /templates index.html app.py requirements.txt</code>
remplir les fichiers comme suit:
app.py
:
import os import flask app = flask.Flask(__name__) @app.route("/") def index(): return flask.render_template("index.html") if __name__ == "__main__": app.run(port=os.environ.get('PORT', '5000'))
templates/index.html
:
<!DOCTYPE html> <html> <head> <title>My example project</title> </head> <body> <h1>This is my project.</h1> </body> </html>
requirements.txt
:
<code>Flask==0.10.1</code>
Installez les dépendances:
pip install -r requirements.txt
Vérifiez les fonctionnalités en exécutant python app.py
et en accédant http://localhost:5000/
.
Création d'un projet Heroku:
git init
heroku create
(ou heroku create myproject
pour spécifier un nom). Cela génère un référentiel de nom, URL et GIT, et initialise le référentiel distant Heroku. Comprendre BuildPacks:
Heroku utilise BuildPacks pour gérer les projets. Ceux-ci fournissent des instructions pour la récupération, la construction et l'exécution de la dépendance. Les buildpacks officiels existent pour plusieurs langues (Node.js, Ruby, Java, Clojure, Scala, Php, Python, Go). Heroku détecte automatiquement le type de projet en fonction des conventions (par exemple, requirements.txt
pour Python). Les buildpacks tiers prennent en charge d'autres langues ou outils de construction.
Configuration du ProCFile:
Heroku utilise un Procfile
pour déterminer quoi exécuter. Pour une application Web simple, ajoutez un Procfile
avec le contenu suivant:
<code>/myproject /templates index.html app.py requirements.txt</code>
(Pour améliorer les performances, considérez Gunicorn: ajoutez-le à requirements.txt
et utilisez web: gunicorn app:app -b 0.0.0.0:$PORT
dans le Procfile
.)
Déploiement de votre projet:
Procfile
: git add Procfile && git commit -m "Added Procfile"
git push heroku master
Déploiement complet!
Votre application doit désormais être déployée. Accédez-y via l'URL fournie par Heroku.
Commandes Heroku supplémentaires:
heroku config:set MY_ENV_VARIABLE=some_value
: Définit les valeurs de configuration persistantes. heroku ps:scale web=5
: évolue le processus Web (utilisez avec prudence en raison des implications des coûts). heroku releases
: répertorie les versions de l'application. heroku rollback <release_identifier></release_identifier>
: revient à une version spécifique. heroku rollback
: annule la dernière version. Ceux-ci peuvent également être gérés via le tableau de bord Heroku.
Questions fréquemment posées (FAQ): (Cette section a été omise de garder la réponse concise, car elle était déjà assez longue. La FAQ d'origine peut être facilement réintégrée si nécessaire. )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!