Closed felzend closed 1 year ago
Can't run Rails App using Docker
Launch Rails Migrations + Rails App with no errors
Getting a docker error
** Invoke db:migrate (first_time) ** Invoke db:load_config (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:load_config ** Execute db:migrate rails aborted! TinyTds::Error: Server name not found in configuration files
database.yml
Dockerfile
Compose Command bash -c "rails db:migrate --trace && rails server -b 0.0.0.0"
Gems:
gem 'tiny_tds', '~> 2.1', '>= 2.1.5' gem 'activerecord-sqlserver-adapter', '~> 7.0', '>= 7.0.1.0'
Full error:
** Invoke db:migrate (first_time) ** Invoke db:load_config (first_time) ** Invoke environment (first_time) ** Execute environment ** Execute db:load_config ** Execute db:migrate rails aborted! TinyTds::Error: Server name not found in configuration files /usr/local/bundle/gems/tiny_tds-2.1.5/lib/tiny_tds/client.rb:60:in `connect' /usr/local/bundle/gems/tiny_tds-2.1.5/lib/tiny_tds/client.rb:60:in `initialize' /usr/local/bundle/gems/activerecord-sqlserver-adapter-7.0.1.0/lib/active_record/connection_adapters/sqlserver_adapter.rb:90:in `new' /usr/local/bundle/gems/activerecord-sqlserver-adapter-7.0.1.0/lib/active_record/connection_adapters/sqlserver_adapter.rb:90:in `dblib_connect' /usr/local/bundle/gems/activerecord-sqlserver-adapter-7.0.1.0/lib/active_record/connection_adapters/sqlserver_adapter.rb:83:in `new_client' /usr/local/bundle/gems/activerecord-sqlserver-adapter-7.0.1.0/lib/active_record/sqlserver_base.rb:15:in `sqlserver_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `public_send' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:656:in `new_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:700:in `checkout_new_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:679:in `try_to_checkout_new_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:640:in `acquire_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:341:in `checkout' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:181:in `connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_adapters/abstract/connection_handler.rb:211:in `retrieve_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_handling.rb:313:in `retrieve_connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/connection_handling.rb:280:in `connection' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/tasks/database_tasks.rb:262:in `migrate' /usr/local/bundle/gems/activerecord-7.0.4.3/lib/active_record/railties/databases.rake:92:in `block (2 levels) in <main>' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `block in execute' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `each' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:281:in `execute' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:219:in `block in invoke_with_call_chain' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `synchronize' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:199:in `invoke_with_call_chain' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/task.rb:188:in `invoke' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:160:in `invoke_task' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block (2 levels) in top_level' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `each' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:116:in `block in top_level' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:125:in `run_with_threads' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:110:in `top_level' /usr/local/bundle/gems/railties-7.0.4.3/lib/rails/commands/rake/rake_command.rb:24:in `block (2 levels) in perform' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/application.rb:186:in `standard_exception_handling' /usr/local/bundle/gems/railties-7.0.4.3/lib/rails/commands/rake/rake_command.rb:24:in `block in perform' /usr/local/lib/ruby/gems/3.2.0/gems/rake-13.0.6/lib/rake/rake_module.rb:59:in `with_application' /usr/local/bundle/gems/railties-7.0.4.3/lib/rails/commands/rake/rake_command.rb:18:in `perform' /usr/local/bundle/gems/railties-7.0.4.3/lib/rails/command.rb:51:in `invoke' /usr/local/bundle/gems/railties-7.0.4.3/lib/rails/commands.rb:18:in `<main>' <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require' <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require' /usr/local/bundle/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' bin/rails:4:in `<main>' Tasks: TOP => db:migrate
7.0.4.3
7.0.1.0
2.1.5
FreeTDS details:
run `tsql -C` and paste here the output.
The problem was I need to call at database.yml the variables using
host: <%= ENV["DB_HOST"] %>
Instead of
host: ENV["DB_HOST"]
Issue
Can't run Rails App using Docker
Expected behavior
Launch Rails Migrations + Rails App with no errors
Actual behavior
Getting a docker error
Details
database.yml
Dockerfile
Compose Command bash -c "rails db:migrate --trace && rails server -b 0.0.0.0"
Gems:
Full error:
7.0.4.3
7.0.1.0
2.1.5
FreeTDS details: