Я пытаюсь настроить Fake-S3 с помощью Paperclip после this gist. На машине развития все работает нормально, но когда я пытаюсь запустить его на CircleCI я получаю ошибкуRails Fake-S3 on CircleCI Connection отказано
Errno::ECONNREFUSED: Connection refused - connect(2) for "local-bucket.local.s3.endpoint" port 4567
У меня есть следующий конфиг/сред/test.rb:
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
access_key_id: 'anything',
secret_access_key: 'anything'
},
bucket: 'local-bucket',
s3_host_name: 'local.s3.endpoint',
s3_protocol: 'http',
url: ':s3_alias_url',
s3_host_alias: 'local-bucket.local.s3.endpoint:4567',
path: '/test/:class/:attachment/:id_partition/:style/:filename',
s3_options: {
use_ssl: false,
s3_port: 4567
}
}
На CircleCI Я добавляю эту строку в/и т.д./хосты:
127.0.0.1 local-bucket.local.s3.endpoint
И работает следующая команда:
fakes3 -r ./fakes3 -p 4567 >log/fakes3.log 2>&1 &
Так что, когда я пытаюсь создать новое ведерко со следующим кодом:
s3 = AWS::S3.new(
access_key_id: 'anything',
secret_access_key: 'anything',
s3_endpoint: 'local.s3.endpoint',
s3_port: 4567,
use_ssl: false
)
s3.buckets.create('local-bucket')
я получаю следующую ошибку:
rake aborted!
Errno::ECONNREFUSED: Connection refused - connect(2) for "local-bucket.local.s3.endpoint" port 4567
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/http/connection_pool.rb:327:in `start_session'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/http/connection_pool.rb:127:in `session_for'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/http/net_http_handler.rb:56:in `handle'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:253:in `block in make_sync_request'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:282:in `retry_server_errors'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/s3/region_detection.rb:11:in `retry_server_errors'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:249:in `make_sync_request'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:511:in `block (2 levels) in client_request'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:391:in `log_client_request'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:477:in `block in client_request'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:373:in `return_or_raise'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/core/client.rb:476:in `client_request'
(eval):3:in `create_bucket'
/home/ubuntu/***/vendor/bundle/ruby/2.2.0/gems/aws-sdk-v1-1.64.0/lib/aws/s3/bucket_collection.rb:109:in `create'
/home/ubuntu/***/lib/tasks/fakes3.rake:11:in `block (2 levels) in <top (required)>'
Tasks: TOP => fakes3:create_bucket
(See full trace by running task with --trace)
Пожалуйста, помогите мне, чтобы выяснить, что случилось?
ОБНОВЛЕНО (1):
Я понял, что если я подключить к CircleCI построить через SSH и запустить
fakes3 -r ./fakes3 -p 4567 >log/fakes3.log 2>&1 &
с рельсов приложение папки все работает, как нужно, и все тесты проходит.
ОБНОВЛЕНО (2):
Кусок circle.yml файла:
test:
pre:
- bundle exec fakes3 -r ./fakes3 -p 4567 >./log/fakes3.log 2>&1 &
- bundle exec rake fakes3:create_bucket