HerokuのCLIとデプロイ|基本コマンドとSeleniumを動かす設定
/ 5 min read
Table of Contents
はじめに
Herokuは、gitでpushするだけでアプリを公開できるPaaSです。CLIの基本操作と、Seleniumを動かすときの設定をまとめました。
Heroku CLIの基本
# ログイン・ログアウト$ heroku login$ heroku logout
# CLIの更新$ heroku updateデプロイまでの流れ
# プロジェクトのディレクトリへ移動$ cd project-folder
# gitリポジトリを初期化$ git init
# Herokuのリモートを登録$ heroku git:remote -a project-name
# コミットしてpush$ git add .$ git commit -m "コメント"$ git push heroku main**pushした時点でビルドとデプロイが走ります。**通常のgitリモートと同じ感覚で扱えるのがHerokuの分かりやすいところです。
その他のコマンド
# Herokuの環境でPythonを実行する$ heroku run python hoge.py
# ログを見る$ heroku logs --tail
# 環境変数を設定する$ heroku config:set KEY=valueheroku logs --tail は、デプロイが失敗したときに最初に見るコマンドです。
SeleniumをHerokuで動かす
Herokuの実行環境にはChromeが入っていないため、buildpackで追加する必要があります。
buildpackを追加する
アプリの Settings から、次の2つを追加します。
https://github.com/heroku/heroku-buildpack-google-chrome.githttps://github.com/heroku/heroku-buildpack-chromedriver.gitCLIからでも追加できます。
$ heroku buildpacks:add heroku/google-chrome$ heroku buildpacks:add heroku/chromedriverコード側の設定
Chromeの実行ファイルの場所を指定し、ヘッドレスモードで動かします。
from selenium import webdriverfrom selenium.webdriver.chrome.options import Options
options = Options()options.binary_location = "/app/.apt/usr/bin/google-chrome"options.add_argument("--headless")options.add_argument("--disable-gpu")
driver = webdriver.Chrome(options=options)サーバー環境では、次のオプションも足しておくと安定します。
options.add_argument("--no-sandbox")options.add_argument("--disable-dev-shm-usage")--disable-dev-shm-usage は、共有メモリが小さいコンテナ環境でクラッシュするのを防ぐ指定です。
おわりに
Herokuは、gitでpushするだけという手軽さが利点でした。無料プランが無くなった今も、その扱いやすさは変わりません。
Seleniumを動かす場合は、buildpackの追加とヘッドレスの指定の2つを押さえておけば、あとはローカルと同じコードで動きます。
