Member-only story
超簡単なDevOpsの導入
10 min readDec 20, 2022
Gitpod、Python、Angular、Docker、Heroku、Github Actionを使ったマルチコンテナアプリ
私の連載記事では、CI/CDの完全なサイクルを作るために自由に使える(クレジットカード不要の)ツールを探すという私の研究の成果を紹介します。
例題は非常に簡単なので、この記事に登場する技術のいくつかに精通していなくても記事を読むことができます。
重要事項:Herokuはマルチコンテナ・アプリケーションに対応していません。GitHub Actionsを使用して、任意のコンテナを独自のHeroku dynoにデプロイすることで、回避策を講じます。
環境のセットアップ
今回はエディタとしてgitpod.ioを使用することにしました。先に必要なのはGitHubとHerokuのアカウントです。そして、Git Hubのアカウントを使ってGitpodにログインします。
最後にこちらのリンクをクリックしてください:https://gitpod.io#github.com/malizia-g/basic-docker-heroku-ci/tree/01-python-service
あなたの環境にあるもの Part-1:
API-serviceフォルダー
シンプルなpythonのAPI
app.pyには、有名なturtlesのリストをJSONで返す重要なサービスが含まれています。
requirements.txtには、プロジェクトのディペンデンシー(flaskのみ)のリストが含まれています。
アプリは (Docker の外で) 次のように実行できます。
import flask
from flask import jsonify
from os import environ
app = flask.Flask(__name__)
app.config["DEBUG"] = True
env_port = 5000 #Check if our env provides a port, if not set the default port
if environ.get('PORT') is not None: env_port =…