質問編集履歴
5
rb追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,7 +14,7 @@
|
|
14
14
|
|
15
15
|
### 発生している問題・エラーメッセージ
|
16
16
|
|
17
|
-
```
|
17
|
+
```rb
|
18
18
|
ActiveRecord::RecordInvalid in EventsController#update
|
19
19
|
バリデーションに失敗しました: Image画像変換に失敗しました。別のファイルを使用してください。
|
20
20
|
※ja.ymlを使用しない場合
|
4
gemの詳細の記載がございませんでしたため、gemfileとgemfile.lockを追記いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -59,8 +59,7 @@
|
|
59
59
|
image uploader
|
60
60
|
```rb
|
61
61
|
class ImageUploader < CarrierWave::Uploader::Base
|
62
|
-
|
62
|
+
|
63
|
-
# include CarrierWave::RMagick
|
64
63
|
include CarrierWave::MiniMagick
|
65
64
|
|
66
65
|
# Choose what kind of storage to use for this uploader:
|
@@ -74,29 +73,13 @@
|
|
74
73
|
|
75
74
|
#storage :fog
|
76
75
|
|
77
|
-
# Override the directory where uploaded files will be stored.
|
78
76
|
# This is a sensible default for uploaders that are meant to be mounted:
|
79
77
|
def store_dir
|
80
78
|
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
81
79
|
end
|
82
80
|
|
83
|
-
# Provide a default URL as a default if there hasn't been a file uploaded:
|
84
|
-
def default_url(*args)
|
85
|
-
# # For Rails 3.1+ asset pipeline compatibility:
|
86
|
-
# # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
|
87
|
-
"default.png"
|
88
|
-
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
89
|
-
end
|
90
|
-
|
91
81
|
# Process files as they are uploaded:
|
92
82
|
process resize_to_fit: [700, nil]
|
93
|
-
# process scale: [200, 300]
|
94
|
-
#
|
95
|
-
# def scale(width, height)
|
96
|
-
# # do something
|
97
|
-
# end
|
98
|
-
|
99
|
-
# Create different versions of your uploaded files:
|
100
83
|
|
101
84
|
#イベント画像
|
102
85
|
version :thumb do
|
@@ -104,21 +87,11 @@
|
|
104
87
|
end
|
105
88
|
|
106
89
|
#ユーザープロフィール写真
|
107
|
-
|
90
|
+
|
108
|
-
# process resize_to_limit: [400, 400]
|
109
|
-
#end
|
110
|
-
|
111
|
-
# Add a white list of extensions which are allowed to be uploaded.
|
112
|
-
# For images you might use something like this:
|
113
91
|
def extension_allowlist
|
114
92
|
%w(jpg jpeg png)
|
115
93
|
end
|
116
94
|
|
117
|
-
# Override the filename of the uploaded files:
|
118
|
-
# Avoid using model.id or version_name here, see uploader/store.rb for details.
|
119
|
-
# def filename
|
120
|
-
# "something.jpg" if original_filename
|
121
|
-
# end
|
122
95
|
end
|
123
96
|
|
124
97
|
```
|
@@ -129,6 +102,177 @@
|
|
129
102
|
mount_uploader :image, ImageUploader
|
130
103
|
end
|
131
104
|
```
|
105
|
+
|
106
|
+
### 該当のソースコードgem
|
107
|
+
gemfile
|
108
|
+
```rb
|
109
|
+
source 'https://rubygems.org'
|
110
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
111
|
+
|
112
|
+
ruby '2.7.7'
|
113
|
+
|
114
|
+
# Rails
|
115
|
+
gem 'rails', '~> 6.0'
|
116
|
+
gem 'rails-i18n'
|
117
|
+
gem 'listen'
|
118
|
+
|
119
|
+
#serch method用(eventsの検索)
|
120
|
+
gem 'ransack'
|
121
|
+
|
122
|
+
#sidekiq 非同期処理
|
123
|
+
gem 'sidekiq','~> 5.2.8'
|
124
|
+
gem 'sinatra', require: false # ダッシュボードのため
|
125
|
+
gem 'sidekiq-history'
|
126
|
+
|
127
|
+
#並列処理
|
128
|
+
gem 'parallel'
|
129
|
+
|
130
|
+
#gem 'redis-actionpack'
|
131
|
+
gem 'redis-namespace'
|
132
|
+
#gem 'redis-rails' #windows Rails_junbiインストール済み
|
133
|
+
|
134
|
+
#docker-compose up で必要
|
135
|
+
gem 'autoprefixer-rails'
|
136
|
+
|
137
|
+
#ページネーション
|
138
|
+
gem 'kaminari'
|
139
|
+
|
140
|
+
#IPアドレス制限、Dos攻撃
|
141
|
+
gem 'rack-attack'
|
142
|
+
|
143
|
+
#PDF作成
|
144
|
+
gem 'prawn'
|
145
|
+
gem 'prawn-table'
|
146
|
+
|
147
|
+
|
148
|
+
# データが見やすいようにする
|
149
|
+
gem 'hirb'
|
150
|
+
gem 'hirb-unicode'
|
151
|
+
|
152
|
+
|
153
|
+
# devise
|
154
|
+
gem 'devise'
|
155
|
+
gem 'devise-i18n'
|
156
|
+
gem 'devise-i18n-views'
|
157
|
+
|
158
|
+
#画像アップロード
|
159
|
+
gem 'carrierwave', '~>2.0'
|
160
|
+
gem 'mini_magick'
|
161
|
+
gem 'mimemagic', '~> 0.3.6'
|
162
|
+
gem 'image_processing', '~> 1.2'
|
163
|
+
|
164
|
+
# Bootstrap
|
165
|
+
#gem 'bootstrap-sass'
|
166
|
+
gem 'bootstrap', '~> 4.6.0'
|
167
|
+
gem 'jquery-rails'
|
168
|
+
gem 'devise-bootstrap-views'
|
169
|
+
|
170
|
+
# リッチテキストフォーム
|
171
|
+
gem 'summernote-rails', '~> 0.8.12.0'
|
172
|
+
gem 'simple_form'
|
173
|
+
|
174
|
+
#stripe
|
175
|
+
gem 'stripe'
|
176
|
+
|
177
|
+
#javascriptのデータ受け渡しgem
|
178
|
+
gem 'gon'
|
179
|
+
|
180
|
+
#gem 'jquery-turbolinks', '~> 2.1'
|
181
|
+
gem 'jquery-turbolinks', '~> 2.1'
|
182
|
+
|
183
|
+
#nokogiri エラー回避にダウンロード
|
184
|
+
gem 'nokogiri', '~> 1.11.0.rc1'
|
185
|
+
|
186
|
+
# Use Puma as the app server
|
187
|
+
gem 'puma'
|
188
|
+
|
189
|
+
# Puma memory kill
|
190
|
+
gem 'puma_worker_killer'
|
191
|
+
|
192
|
+
# Use SCSS for stylesheets
|
193
|
+
gem 'sass-rails'
|
194
|
+
# Use Uglifier as compressor for JavaScript assets
|
195
|
+
gem 'uglifier', '>= 1.3.0'
|
196
|
+
|
197
|
+
# Use CoffeeScript for .coffee assets and views
|
198
|
+
gem 'coffee-rails'
|
199
|
+
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
|
200
|
+
gem 'turbolinks', '~> 5'
|
201
|
+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
202
|
+
gem 'jbuilder'
|
203
|
+
# Use Redis adapter to run Action Cable in production
|
204
|
+
# gem 'redis', '~> 4.0'
|
205
|
+
# Use ActiveModel has_secure_password
|
206
|
+
gem 'bcrypt', '~> 3.1.7'
|
207
|
+
# Use ActiveStorage variant
|
208
|
+
# gem 'mini_magick', '~> 4.8'
|
209
|
+
|
210
|
+
# Use Capistrano for deployment
|
211
|
+
# gem 'capistrano-rails', group: :development
|
212
|
+
|
213
|
+
# Reduces boot times through caching; required in config/boot.rb
|
214
|
+
gem 'bootsnap', '>= 1.1.0', require: false
|
215
|
+
|
216
|
+
group :development, :test do
|
217
|
+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
218
|
+
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
|
219
|
+
end
|
220
|
+
|
221
|
+
group :development do
|
222
|
+
# Access an interactive console on exception pages or by calling 'console' anywhere in the code.
|
223
|
+
gem 'web-console', '>= 3.3.0'
|
224
|
+
|
225
|
+
# Use sqlite3 as the database for Active Record
|
226
|
+
gem 'sqlite3'
|
227
|
+
|
228
|
+
#csv import
|
229
|
+
gem 'activerecord-import'
|
230
|
+
|
231
|
+
#N+1 test
|
232
|
+
gem 'bullet'
|
233
|
+
|
234
|
+
gem 'letter_opener_web'
|
235
|
+
gem 'sys-proctable'
|
236
|
+
gem 'rspec-rails'
|
237
|
+
gem "ffi"
|
238
|
+
|
239
|
+
end
|
240
|
+
|
241
|
+
group :test do
|
242
|
+
# Adds support for Capybara system testing and selenium driver
|
243
|
+
gem 'capybara', '>= 2.15'
|
244
|
+
gem 'selenium-webdriver'
|
245
|
+
#chromedriver-helperの代わり
|
246
|
+
gem 'webdrivers'
|
247
|
+
gem 'rspec-rails'
|
248
|
+
gem "ffi"
|
249
|
+
|
250
|
+
end
|
251
|
+
|
252
|
+
group :staging do
|
253
|
+
gem 'pg'
|
254
|
+
gem 'fog-aws'
|
255
|
+
gem 'rails_12factor'
|
256
|
+
gem 'rspec-rails'
|
257
|
+
end
|
258
|
+
|
259
|
+
group :production do
|
260
|
+
gem 'pg'
|
261
|
+
gem 'fog-aws'
|
262
|
+
gem 'rails_12factor'
|
263
|
+
end
|
264
|
+
|
265
|
+
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
266
|
+
gem 'tzinfo-data'
|
267
|
+
|
268
|
+
gem 'exception_notification'
|
269
|
+
gem 'exception_notification-rake'
|
270
|
+
gem 'slack-notifier'
|
271
|
+
gem 'dotenv-rails'
|
272
|
+
```
|
273
|
+
|
274
|
+
|
275
|
+
|
132
276
|
### 該当のソースコードdocker関連
|
133
277
|
|
134
278
|
Dockerfile
|
3
ソースコード言語追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -132,7 +132,7 @@
|
|
132
132
|
### 該当のソースコードdocker関連
|
133
133
|
|
134
134
|
Dockerfile
|
135
|
-
```
|
135
|
+
```rb
|
136
136
|
FROM alpine:3.13
|
137
137
|
FROM node:18-alpine as node
|
138
138
|
FROM ruby:2.7.7-alpine
|
@@ -156,7 +156,7 @@
|
|
156
156
|
```
|
157
157
|
|
158
158
|
docker-compose.yml
|
159
|
-
```
|
159
|
+
```rb
|
160
160
|
version: "3"
|
161
161
|
services:
|
162
162
|
# --------------------------------------------------------------------------------
|
2
ご質問への回答を追記いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,7 +7,8 @@
|
|
7
7
|
|
8
8
|
- [ ] 今までは問題なく実装できており、アップロードが出来ていました。
|
9
9
|
rails5.2系→6.1にアップグレードしたところ、アップロードがされなくなりました。
|
10
|
+
尚、全く同じ条件(githubを使用し、gemfilelockで共有が出来ている状態)で、
|
10
|
-
|
11
|
+
ローカルマシンでサーバーを立ち上げたテスト(localhost:3000)で試したところ、問題なくアップロードできるため、
|
11
12
|
dockerの条件に問題があるのではと考えております。
|
12
13
|
|
13
14
|
|
@@ -16,6 +17,10 @@
|
|
16
17
|
```
|
17
18
|
ActiveRecord::RecordInvalid in EventsController#update
|
18
19
|
バリデーションに失敗しました: Image画像変換に失敗しました。別のファイルを使用してください。
|
20
|
+
※ja.ymlを使用しない場合
|
21
|
+
ActiveRecord::RecordInvalid in EventsController#update
|
22
|
+
バリデーションに失敗しました:
|
23
|
+
Imagetranslation missing: ja.errors.messages.mini_magick_processing_error:
|
19
24
|
```
|
20
25
|
通常、画像のupdateを行うとエラーが発生せず、update!と、意図的にエラーを起こすと上記が表示されます。
|
21
26
|
それ以外は、エラーがlogに出ず、rollbackされております。
|
@@ -23,7 +28,7 @@
|
|
23
28
|
### 該当のソースコード
|
24
29
|
|
25
30
|
view
|
26
|
-
```
|
31
|
+
```rb
|
27
32
|
<%= image_tag "/assets/default.png", class: "img-fluid top-img-mobile" %>
|
28
33
|
<div class="field">
|
29
34
|
<br>
|
@@ -43,7 +48,7 @@
|
|
43
48
|
```
|
44
49
|
|
45
50
|
contoroller
|
46
|
-
```
|
51
|
+
```rb
|
47
52
|
@event.update(
|
48
53
|
image: params[:event][:image]
|
49
54
|
)
|
@@ -52,7 +57,7 @@
|
|
52
57
|
```
|
53
58
|
|
54
59
|
image uploader
|
55
|
-
```
|
60
|
+
```rb
|
56
61
|
class ImageUploader < CarrierWave::Uploader::Base
|
57
62
|
# Include RMagick or MiniMagick support:
|
58
63
|
# include CarrierWave::RMagick
|
@@ -119,15 +124,84 @@
|
|
119
124
|
```
|
120
125
|
|
121
126
|
model
|
122
|
-
```
|
127
|
+
```rb
|
123
128
|
class UploadedImage < ApplicationRecord
|
124
129
|
mount_uploader :image, ImageUploader
|
125
130
|
end
|
126
131
|
```
|
127
|
-
|
132
|
+
### 該当のソースコードdocker関連
|
133
|
+
|
134
|
+
Dockerfile
|
135
|
+
```
|
136
|
+
FROM alpine:3.13
|
137
|
+
FROM node:18-alpine as node
|
138
|
+
FROM ruby:2.7.7-alpine
|
139
|
+
COPY --from=node /usr/local/bin/node /usr/local/bin/node
|
140
|
+
RUN apk update \
|
141
|
+
&& apk add --no-cache build-base make g++ sqlite-dev postgresql postgresql-dev imagemagick6 imagemagick6-dev imagemagick6-c++ \
|
142
|
+
&& gem install nokogiri \
|
143
|
+
&& mkdir /app
|
144
|
+
WORKDIR /app
|
145
|
+
COPY ./Gemfile /app/Gemfile
|
146
|
+
COPY ./Gemfile.lock /app/Gemfile.lock
|
147
|
+
RUN bundle install
|
148
|
+
COPY ./ /app
|
149
|
+
|
150
|
+
COPY ./docker/web/entrypoint.sh /usr/bin/
|
151
|
+
RUN chmod +x /usr/bin/entrypoint.sh
|
152
|
+
ENTRYPOINT ["entrypoint.sh"]
|
153
|
+
EXPOSE 8000
|
154
|
+
|
155
|
+
CMD ["rails", "server", "-b", "0.0.0.0"]
|
156
|
+
```
|
157
|
+
|
158
|
+
docker-compose.yml
|
159
|
+
```ここに言語を入力
|
160
|
+
version: "3"
|
161
|
+
services:
|
162
|
+
# --------------------------------------------------------------------------------
|
163
|
+
# Web Server
|
164
|
+
# --------------------------------------------------------------------------------
|
165
|
+
web: &web
|
166
|
+
build:
|
167
|
+
context: .
|
168
|
+
dockerfile: docker/web/Dockerfile
|
169
|
+
command: sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 80 -b '0.0.0.0' -e development"
|
170
|
+
ports:
|
171
|
+
- 80:80
|
172
|
+
volumes:
|
173
|
+
- bundle_install:/usr/local/bundle
|
174
|
+
- "./:/app"
|
175
|
+
# 1. exclude volumes
|
176
|
+
- /app/.git
|
177
|
+
- /app/.github
|
178
|
+
- /app/.idea
|
179
|
+
- /app/log
|
180
|
+
- /app/tmp
|
181
|
+
- /app/vendor
|
182
|
+
stdin_open: true
|
183
|
+
tty: true
|
184
|
+
environment:
|
185
|
+
TZ: Asia/Tokyo
|
186
|
+
# --------------------------------------------------------------------------------
|
187
|
+
# Web Server
|
188
|
+
# --------------------------------------------------------------------------------
|
189
|
+
redis:
|
190
|
+
image: "redis:latest"
|
191
|
+
ports:
|
192
|
+
- "6379:6379"
|
193
|
+
volumes:
|
194
|
+
- "./data/redis:/data"
|
195
|
+
volumes:
|
196
|
+
mysql-data:
|
197
|
+
driver: local
|
198
|
+
bundle_install:
|
199
|
+
|
200
|
+
```
|
128
201
|
|
129
202
|
### 試したこと
|
130
203
|
Active strageの導入
|
204
|
+
https://qiita.com/asami___t/items/1aa2022ed9c511d4232c
|
131
205
|
[https://qiita.com/asami___t/items/1aa2022ed9c511d4232c](url)
|
132
206
|
|
133
207
|
### 補足情報(FW/ツールのバージョンなど)
|
1
エラーの追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -17,7 +17,8 @@
|
|
17
17
|
ActiveRecord::RecordInvalid in EventsController#update
|
18
18
|
バリデーションに失敗しました: Image画像変換に失敗しました。別のファイルを使用してください。
|
19
19
|
```
|
20
|
-
通常、画像のupdateを行うとエラーが発生せず
|
20
|
+
通常、画像のupdateを行うとエラーが発生せず、update!と、意図的にエラーを起こすと上記が表示されます。
|
21
|
+
それ以外は、エラーがlogに出ず、rollbackされております。
|
21
22
|
|
22
23
|
### 該当のソースコード
|
23
24
|
|