minioとは
Amazon S3クラウドストレージサービスと互換性のあるオブジェクトストレージ。オブジェクトのサイズは、数KBから最大5TBの範囲とのこと。
Railsでの使用では、S3との互換性があるため、carrierwaveやpaperclipなどでも使用しやすく開発環境でS3のテスト用として使用するときなどにとても便利です。
minioの設定やら使い方に関しては、公式や他の記事をみてもらえばわかると思うので省略します。
今回は、使用する上で何かとハマったポイントとその解決方法を備忘録も兼ね書いていきたいと思います。
#この記事が役に立つかもしれない人
・RailsでDockerを利用しminioを使っている人。
使用環境
macOS Mojave 10.14.1
Ruby 2.4.1
Rails 5.1.5
#起こった問題
・format.jsonのversionにずれが生じる。
何故か自分の環境だけ(他の人は最新のバージョンになっている)minioのバージョンが古いままの状態でupdateされない。そのため、バージョンにズレが生じ画像が表示されないことがある。ログで「You are running an older version of Minio released 1 year ago」などと、バージョンが古いと注意される。キャッシュのため画像が表示されていたりすることもあるが、シークレットウィンドウで確認すると画像が表示されていなことがわかる。
sample_minio | You are running an older version of Minio released 1 year ago
sample_minio | Update: docker pull minio/minio:RELEASE.2018-xx-xxxx-xx-xxx
基本的に**「minio/minio:latest」**この設定をしていればdockerを立ち上げた段階で最新の状態になるため同じ状況になるひとは少ないかもしれない・・・
・バージョンとか関係なく全画像表示されない(開発環境で)
#解決方法
1.dockerのコンテナとイメージを作り直す
どうしてもformat.jsonのバージョンが最新にならない場合は、下記コマンドでコンテナとimageを作り直してみてください。
・該当のコンテナを削除する
$ docker rm sample_minio
・該当のイメージを削除
$ docker rmi -f {IMAGE ID}
・ゴミイメージを削除
$ docker image prune -af
・もう一回ビルド
$ docker-compose build
2.minioの管理画面側の設定を変更する
バージョンが最新の状態の場合でも画像が表示されていない場合は、Webブラウザでhttp://127.0.0.1:9000にアクセスし、minioのweb管理画面側で権限の設定がされているか確かめてください。該当のバケットの**「Edit policy」**でReadかWriteを設定してください。
#まとめ
以前から、画像がところどころ表示されなかったりといまいちminioについて理解せずそのままにしていました。そもそも何故バージョンが更新されなかったのか。など、まだ根本的なところが深く理解できていませんが、引き続きminioについて調べていきたいと思います。
上記の内容で、「それはこうしたほうがいい」「そもそもそこが違う」などの意見があればコメントを頂けたらと思います。
少しでも同じような問題が起きている人のためになれば幸いです。読んでいただきありがとうございました!