自分メモです。
正確には、minio を同じサーバーのdockerコンポーネントで立ち上げdocker network経由でも使えるようにした上で、それを同時にnginxプロキシーで外向きの https:// に設定しているので、CarrierWaveのfogでは、その https:// URL をendpointあるいはasset_hostとして指定した場合、Railsで画像アップロードしようとすると、その指定した https:// URL がIPアドレスに変換されてしまい、サービスを検知できない問題……
とにかくこの問題は起こりました。
解決策は、StackOverflow の下記ページにありました。でも、たどり着くのに少し時間がかかった。
asset_hostはそれでいい。しかし、endpointはdockerのコンテナ名を指定すべきと。
StackOverflow: Can't upload file through carrierwave fog-aws to minio (docker-compose)
qiita.rb
CarrierWave.configure do |config|
config.fog_provider = 'fog/aws'
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: 'development',
aws_secret_access_key: 'development',
region: 'us-east-1',
host: 'minio', # <- ここをコンテナ名に/サービスのURL(ドメイン名)だとIPアドレスになってしまう
endpoint: 'http://minio:9000' # <- ここも
}
config.fog_directory = 'test'
config.fog_public = false
end