Contents
- 1 手順
- 2 Docker Compose時のstandard_init_linux.go:211: exec user process caused “no such file or directory” エラー
- 3 Docker Compose時のDocker standard_init_linux.go:228: exec user process caused: no such file or directoryエラー
- 4 Ruby Console立ち上げ時のthe development database is not configured for the development environmentエラー
- 5 Ruby Console立ち上げ時のcould not connect to server: Connection refusedエラー
- 6 ENV[‘KEY’] 時に中身がNilになる問題
- 7 Ruby Console上でのメソッド実行時のRails: NameError: uninitialized constantエラー
手順
①色々インストール
- WSL2とDocker Desktop:「【Docker Desktop】Windowsにインストール(WSL2)」
- Ruby&Rails:「【2022年版Rubyインストール】WindowsとMacの手順を解説」
②色々コマンド実行
mkdir neko //ディレクトリ作成
cd neko //ディレクトリに移動
git config --global core.autocrlf input //改行コード自動変換をOFF
git clone リポジトリのURL //リポジトリをclone
git branch //branchを確認
git checkout -b neko/nyan //branch作成&checkout
docker compose up --build //コンテナ立ち上げ
vim .env //.envファイル作成
<<環境変数の設定>>
Dotenv.load //環境変数の読み込み
<<.gitignoreファイルに.envを追記>>
ENV['設定したKEY'] //環境変数の設定を確認
docker compose exec コンテナ名 bin/コンテナ名 rails c //Ruby Consoleの立ち上げ
Docker Compose時のstandard_init_linux.go:211: exec user process caused “no such file or directory” エラー
エラーの原因:各ファイルの改行コードがWindows標準の”CRLF”となっているため、Linuxで正常に読み込みができない状態となっている。
改行コードがおかしくなる原因:Windows環境でgit cloneコマンドを実行すると、ファイルの改行コードが”CRLF”に自動変換されてしまうため。
エラーの解消方法:(ディレクトリ・Dockerコンテナを作成済の場合は削除の上、)git clone前に下記コードを実行して、改行コード自動変換設定をオフにする。
Docker Compose時のDocker standard_init_linux.go:228: exec user process caused: no such file or directoryエラー
同上
Ruby Console立ち上げ時のthe development database is not configured for the development environmentエラー
可能性1:database.ymlファイル自体がない
→config配下にdatabase.ymlを作成する
可能性2:database.ymlはあるが、developmentに関する記述がない
→database.ymlにdevelopmentに関する記述を追加する
コード例↓
default: &default
adapter: postgresql
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
encoding: utf8
username: postgres
password: postgres
host: db
development:
<<: *default
database: MyApp_development
test:
<<: *default
database: MyApp_test
production:
<<: *default
password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>
Ruby Console立ち上げ時のcould not connect to server: Connection refusedエラー
推定される原因: database.yml内のhost名がdocker-compose.ymlで定義されているDB用コンテナ名と同一ではない(ため、代わりにRailsがローカルホストのDBへの接続を試行し、参照先が見つからずエラーとなっている)
→ database.yml内のhost名をdocker-compose.ymlで定義されているDB用コンテナ名と一致させる。
ENV[‘KEY’] 時に中身がNilになる問題
可能性1:.envファイル内で当該のKEY(と値のペア)が設定できていない
→vimで中身を編集&保存する
可能性2:設定した.envをRailsでloadできていない
→Dotenv.loadを実行する
Ruby Console上でのメソッド実行時のRails: NameError: uninitialized constantエラー
推定される原因:新しく作成したメソッドをrailsに読み込めていない
→コンソール上でreload!を実行して、再度メソッドを呼び出す