4
1

More than 3 years have passed since last update.

【M1チップ/Docker/Rails6/MySQL5】デプロイ済みアプリをHEROKU環境でDocker構築するまでの道程

Last updated at Posted at 2021-06-24

やりたいこと

既存アプリに対してHEROKUでのdocker導入

環境

Ruby 2.6.5
rails 6.0
MySQL 5.6
M1チップ搭載MacOS

目次

1.導入手順
2.発生したエラー
3.まとめ

1.導入手順

% heroku login
% heroku container:login
% heroku container:push web -a <アプリ名>
% heroku container:release web -a <アプリ名>
% heroku run rails db:migrate

2. 遭遇したエラー

Error: Exec format error

heroku run rails db:migrate実行したとき
(heroku run consoleやrails c実行時も同様)

heroku logs --tailでエラーログ確認するもわからず、

M1 MacでHeroku containerにデプロイしたらExec format errorと出て困った話
⬆こちらの記事を参照させていただきました。

% docker buildx build . --platform linux/amd64 -t <ユーザー名>/<アプリ名>:latest

上記コマンド実行時、またしてもエラー発生!

ERROR [10/12] RUN bundle exec rails webpacker:install
Errno::ENOSYS: Function not implemented - Failed to initialize inotify

  

⬆こちらの方のツイートを参照させていただきました。    

- config.file_watcher = ActiveSupport::EventedFileUpdateChecker
+ config.file_watcher = ActiveSupport::FileUpdateChecker

config/enviroments/development.rbを書き換えます。

% docker tag <ユーザー名>/<アプリ名> registry.heroku.com/<アプリ名>/web
% docker push registry.heroku.com/<アプリ名>/web
% heroku container:release web -a <アプリ名>
% heroku run rails db:migrate
%  heroku open

あとはイメージをプッシュし、リリース

3. まとめ

これで無事HEROKU上でDockerコンテナが起動できました。

ローカル環境のDockerイメージをビルドして本番環境に直接アップしました。

前回の記事はこちら➡【M1チップ/Docker/Rails6/MySQL5】既存アプリをローカルでDocker環境を構築する道程で遭遇したエラー

ローカルで動かしたものを本番環境でも同様に動かすことができました。

4
1
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
4
1