3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Docker】ローカルのDockerイメージからHerokuへデプロイする方法

Last updated at Posted at 2020-11-15

デプロイする流れ

1 Heroku上にHerokuアプリを作成する。(URLが付与される) 

2 Herokuのコンテナレジストリ(Heroku上のDockerイメージ置き場)にDockerイメージをプッシュする。

3  Dockerイメージをアプリへリリース

4 デプロイしたアプリへブラウザでアクセス

事前にアカウントを作成し、クレジットカードを登録しておく。(クレジットカードを登録しないと公開できない。)

heroku cli のインストール(mac)

brew install heroku/brew/heroku

herokuへログイン

heroku login

自動起動するブラウザからログインする。

コンテナレジストリにログイン

heroku container:login

アプリに移動

※herokuはアプリのルートディレクトリ直下のdockerfileを参照する仕様。そのため、dockerfileが違う場所にある場合は、複製してルート直下にheroku用のdockerfileを配置する必要がある。

herokuでapacheを動かそうとするとエラーとなるので一部対処が必要。

エラー対処設定ファイルを作成

run-apache2.sh
sed -i "s/Listen 80/Listen ${PORT:-80}/g" /etc/apache2/ports.conf
rm /etc/apache2/mods-enabled/mpm_event.conf
rm /etc/apache2/mods-enabled/mpm_event.load
apache2-foreground "$@"

dockerfileでコンテナへコピーする記述と実行コマンドを追記

heroku用 dockerfile.
COPY ./docker/app/run-apache2.sh /usr/local/bin/
CMD [ "run-apache2.sh" ]

エラー対処設定ファイルに実行権限を付与する

chmod +x run-apache2.sh

herokuアプリを作成

heroku create

データーベースと連携させるためアドオンをインストールする。(ignite => 無料)

heroku addons:create cleardb:ignite

cleardbの接続設定を確認する。

heroku config | grep CLEARDB_DATABASE_URL

mysql:// ユーザー名 : パスワード @ ホスト名 /データーベース名 ?

環境変数の設定

heroku config:add DB_USERNAME=ユーザー名

heroku config:add DB_PASSWORD=パスワード

heroku config:add DB_DB_HOST='ホスト名' (.が入っているので'で括る)

heroku config:add DB_DATABASE=ユーザー名 

確認

heroku config

テーブルの作成

heroku run "テーブルの作成関数が記載されたファイル"

レジストリコンテナへプッシュ

heroku container:push web

レジストリコンテナへリリース

heroku container:release web

ブラウザ上からアクセス

heroku open

※複数のアプリを登録していた場合

heroku apps:info

アプリケーション名を調べてコマンドの末尾に

--app アプリ名 

を付与する。

herokuアプリを削除する方法

heroku apps:destroy --app アプリ名 -confirm アプリ名

heroku ログの確認(--tail で監視)

heroku logs --tail

修正を反映させる。
ローカルファイルを修正。

レジストリコンテナへプッシュ

heroku container:push web

レジストリコンテナへリリース

heroku container:release web
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?