Il y a environ un mois, laissez l'image Docker telle quelle Maintenant que je peux le déployer sur Heroku, je l'ai essayé. Il est toujours en version bêta publique.
référence Container registry public beta - deploy Docker images to Heroku ContainerRegistryandRuntime
Ce qui suit est décrit en supposant qu'il a déjà été terminé.
J'ai utilisé ma propre application Flask comme cible de déploiement. https://github.com/nanakenashi/image_clock
C'est une simple application d'horloge qui change les images en fonction de l'heure.
image_clock/
├ static/
├ templates/
├ Dockerfile
├ app.py
└ requirements.txt
#Utiliser Alpine Linux avec Python comme image de base
FROM python:3.5.2-alpine
#installation de git
RUN apk update
RUN apk add git
#Installation du package Python
ADD requirements.txt /tmp
RUN pip install -r /tmp/requirements.txt
#Placez le code source
WORKDIR /web
RUN git clone https://github.com/nanakenashi/image_clock.git clock
#lancer l'application flask
ENV FLASK_APP /web/clock/app.py
CMD flask run -h 0.0.0.0 -p $PORT
Le point est la partie de lancement de l'application flask.
au lieu de
RUN`0.0.0.0
pour correspondre à l'adresse IP de l'environnement d'exécutionPORT
.Assurez-vous que la commande docker
est disponible
$ docker ps
Connectez-vous à Heroku.
$ heroku login
Récupérez le code source de GitHub et accédez au répertoire.
$ git clone https://github.com/nanakenashi/image_clock.git ./image_clock
$ cd image_clock
Sécurisez une place pour l'application.
$ heroku create flask-clock-sample
À ce stade, il n'y a pas de source, donc c'est juste une boîte. Lorsque vous y accédez, cela ressemble à ceci. ↓
Créez un conteneur basé sur le Dockerfile et envoyez-le au référentiel.
$ heroku container:push --app flask-clock-sample web
--app flask-clock-sample
: Extraire le conteneur vers l'application spécifiéeweb
: spécifiez le type de processus ( web
ou worker
) dans Heroku$ heroku open --app flask-clock-sample
J'ai pu confirmer le fonctionnement de l'application horloge.
Parce que l'application utilisée cette fois n'utilise pas de modules complémentaires C'était très simple à installer et à déployer.
Il semble qu'il sera un peu plus difficile de créer une configuration de type Heroku telle que la connexion à la base de données et l'organisation des journaux.
Recommended Posts