質問編集履歴

1

cannot load such file -- bundler (LoadError)は解決しました。

2020/03/11 07:09

投稿

NakaShun_1129
NakaShun_1129

スコア20

test CHANGED
File without changes
test CHANGED
@@ -10,8 +10,6 @@
10
10
 
11
11
  上記のコマンド実行時に下記のエラーが出ています。
12
12
 
13
-
14
-
15
13
  ```
16
14
 
17
15
  NoMethodError: undefined method `[]' for nil:NilClass
@@ -20,170 +18,184 @@
20
18
 
21
19
  該当箇所を調べてみるとTwitter認証で使用する環境変数をCredentials.ymlから参照している箇所でした。
22
20
 
23
- そこでCredentials.ymlの中身を確認しようと”EDITOR=vim bin/rails credentials:edit”のコマンドを打つと、
24
-
25
- ```
21
+ ```
26
-
22
+
27
- cannot load such file -- bundler (LoadError)
23
+ EDITOR=vim bin/rails credentials:edit
28
-
24
+
29
- ```
25
+ ```
26
+
30
-
27
+ 上記のコマンドでCredentials.ymlの中身を確認すると問題なく環境変数がありました。
28
+
29
+
30
+
31
+ 何かエラーの原因の分かる方いませんでしょうか。
32
+
33
+
34
+
35
+
36
+
37
+ 下に参考ファイルを貼っておきます。
38
+
39
+ ```
40
+
41
+ Dockerfile
42
+
43
+
44
+
45
+
46
+
47
+ FROM ruby:2.5.1
48
+
49
+
50
+
51
+ RUN apt-get update && \
52
+
53
+ apt-get install -y mysql-client nodejs vim --no-install-recommends && \
54
+
55
+ rm -rf /var/lib/apt/lists/*
56
+
57
+
58
+
59
+ RUN mkdir /myproject
60
+
61
+
62
+
63
+ WORKDIR /myproject
64
+
65
+
66
+
67
+ ADD Gemfile /myproject/Gemfile
68
+
69
+ ADD Gemfile.lock /myproject/Gemfile.lock
70
+
71
+
72
+
73
+ RUN gem install bundler
74
+
75
+ RUN bundle install
76
+
77
+
78
+
79
+ ADD . /myproject
80
+
81
+ ```
82
+
83
+
84
+
85
+
86
+
87
+ ```
88
+
89
+ docker-compose
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ version: '2'
98
+
99
+ services:
100
+
101
+ db:
102
+
103
+ image: mysql:5.6
104
+
105
+ volumes:
106
+
107
+ - mysql-data:/var/lib/mysql #データの永続化のために必要
108
+
109
+ ports:
110
+
111
+ - "4306:3306" #両方3306でもok。DBをsequel proで可視化したい為
112
+
113
+ environment:
114
+
115
+ MYSQL_ALLOW_EMPTY_PASSWORD: password
116
+
117
+
118
+
119
+ app:
120
+
121
+ tty: true #コンテナ上でbinding.pryするために必要
122
+
123
+ stdin_open: true #コンテナ上でbinding.pryするために必要
124
+
125
+ build: .
126
+
127
+ command: bundle exec rails s -p 3000 -b '0.0.0.0'
128
+
129
+ volumes:
130
+
131
+ - .:/myproject #ローカルのディレクトリをコンテナ上にマウント
132
+
133
+ - bundle:/usr/local/bundle #bundle installした後buildし直さなくてよくなる
134
+
135
+ ports:
136
+
137
+ - "3000:3000"
138
+
139
+ links:
140
+
141
+ - db
142
+
143
+
144
+
145
+ volumes:
146
+
147
+ mysql-data:
148
+
149
+ bundle: #bundle installした後buildし直さなくてよくなる
150
+
151
+ ```
152
+
153
+
154
+
155
+ ```
156
+
157
+ database.yml
158
+
159
+
160
+
161
+
162
+
163
+ default: &default
164
+
165
+ adapter: mysql2
166
+
167
+ # encoding: utf8
168
+
169
+ encoding: utf8mb4
170
+
171
+ charset: utf8mb4 # <= 追加
172
+
173
+ collation: utf8mb4_general_ci # <= 追加
174
+
175
+ pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
176
+
177
+ username: root
178
+
179
+ password: password
180
+
181
+ host: db #docker-compose.ymlのservice名を記載
182
+
183
+ ```
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+ **下記については解決済**
192
+
193
+ ~~そこでCredentials.ymlの中身を確認しようと”EDITOR=vim bin/rails credentials:edit”のコマンドを打つと、~~
194
+
195
+ ~~cannot load such file -- bundler (LoadError)~~
196
+
31
- のエラーが出てしまいます。
197
+ ~~のエラーが出てしまいます。
32
198
 
33
199
  bundlerのバージョンに問題があるのかと思い確認すると、
34
200
 
35
- ローカル環境、本番環境共にbundler (2.1.4, 2.0.2)で一致していました。
201
+ ローカル環境、本番環境共にbundler (2.1.4, 2.0.2)で一致していました。~~
36
-
37
-
38
-
39
- 何か分かる方いませんでしょうか。
40
-
41
-
42
-
43
- 下記に参考ファイルを貼っておきます。
44
-
45
- ```
46
-
47
- Dockerfile
48
-
49
-
50
-
51
-
52
-
53
- FROM ruby:2.5.1
54
-
55
-
56
-
57
- RUN apt-get update && \
58
-
59
- apt-get install -y mysql-client nodejs vim --no-install-recommends && \
60
-
61
- rm -rf /var/lib/apt/lists/*
62
-
63
-
64
-
65
- RUN mkdir /myproject
66
-
67
-
68
-
69
- WORKDIR /myproject
70
-
71
-
72
-
73
- ADD Gemfile /myproject/Gemfile
74
-
75
- ADD Gemfile.lock /myproject/Gemfile.lock
76
-
77
-
78
-
79
- RUN gem install bundler
80
-
81
- RUN bundle install
82
-
83
-
84
-
85
- ADD . /myproject
86
-
87
- ```
88
-
89
-
90
-
91
-
92
-
93
- ```
94
-
95
- docker-compose
96
-
97
-
98
-
99
-
100
-
101
-
102
-
103
- version: '2'
104
-
105
- services:
106
-
107
- db:
108
-
109
- image: mysql:5.6
110
-
111
- volumes:
112
-
113
- - mysql-data:/var/lib/mysql #データの永続化のために必要
114
-
115
- ports:
116
-
117
- - "4306:3306" #両方3306でもok。DBをsequel proで可視化したい為
118
-
119
- environment:
120
-
121
- MYSQL_ALLOW_EMPTY_PASSWORD: password
122
-
123
-
124
-
125
- app:
126
-
127
- tty: true #コンテナ上でbinding.pryするために必要
128
-
129
- stdin_open: true #コンテナ上でbinding.pryするために必要
130
-
131
- build: .
132
-
133
- command: bundle exec rails s -p 3000 -b '0.0.0.0'
134
-
135
- volumes:
136
-
137
- - .:/myproject #ローカルのディレクトリをコンテナ上にマウント
138
-
139
- - bundle:/usr/local/bundle #bundle installした後buildし直さなくてよくなる
140
-
141
- ports:
142
-
143
- - "3000:3000"
144
-
145
- links:
146
-
147
- - db
148
-
149
-
150
-
151
- volumes:
152
-
153
- mysql-data:
154
-
155
- bundle: #bundle installした後buildし直さなくてよくなる
156
-
157
- ```
158
-
159
-
160
-
161
- ```
162
-
163
- database.yml
164
-
165
-
166
-
167
-
168
-
169
- default: &default
170
-
171
- adapter: mysql2
172
-
173
- # encoding: utf8
174
-
175
- encoding: utf8mb4
176
-
177
- charset: utf8mb4 # <= 追加
178
-
179
- collation: utf8mb4_general_ci # <= 追加
180
-
181
- pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
182
-
183
- username: root
184
-
185
- password: password
186
-
187
- host: db #docker-compose.ymlのservice名を記載
188
-
189
- ```