やりたいこと
既存アプリに対してローカル環境でのdocker導入
環境
Ruby 2.6.5
rails 6.0
MySQL 5.6
M1チップ搭載MacOS
遭遇したエラー
[1.ERROR RUN bundle install](#1-ERROR RUN bundle install)
[2.error Integrity check failed](#2-error Integrity check failed)
3.ActiveRecord::NoDatabaseError
[4.Aws::Sigv4::Errors::MissingCredentialsError in items#index](#4-Aws::Sigv4::Errors::MissingCredentialsError in items#index)
###1.ERROR RUN bundle install
発生したエラー
Could not locate Gemfile
bundle update --bundler
gem install bundler:2.1.4
Dockerfileとdocker-compose.ymlを書いて、docker-compose up --buildを実行したとき
##### 解決方法
ENV BUNDLER_VERSION 2.1.4
RUN gem update --system \
&& gem install bundler -v $BUNDLER_VERSION \
&& bundle install -j 4
###2.error Integrity check failed
発生したエラー
Your Yarn packages are out of date!
web_1 | Please run `yarn install --check-files` to update.
docker-compose up -dを実行したとき
##### 解決方法
- check_yarn_integrity: true
+ check_yarn_integrity: false
trueをfalseに変更
3.ActiveRecord::NoDatabaseError
発生したエラー
Unknown database 'fridge_app_development'
docker-compose up -dを実行してサーバーにアクセスして表示されないとき
##### 解決方法
% docker-compose exec web rails db:create
% docker-compose exec web rails db:migrate
% docker-compose exec web rails db:seed
ターミナルでコマンド実行。単純にDBを作るだけ
4.Aws::Sigv4::Errors::MissingCredentialsError in items#index
発生したエラー
Cannot load `Rails.config.active_storage.service`:
missing credentials, provide credentials with one of the following options:
- :access_key_id and :secret_access_key
- :credentials
- :credentials_provider
docker-compose up -dを実行してサーバーにアクセスして表示されないとき
##### 解決方法
environment:
AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
.envファイルで環境変数を宣言して、Dockerfileで展開するように追記
まとめ
その他、細かいエラー等ありましたが、なんとかローカル環境でDocker導入できました。次回はHeorkuでのDocker環境構築の記事を備忘録として書き留めます。