diff --git a/railties/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt b/railties/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt index fe07a7a3cbb75..6f7b78520d942 100644 --- a/railties/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt +++ b/railties/lib/rails/generators/rails/devcontainer/templates/devcontainer/Dockerfile.tt @@ -1,3 +1,7 @@ # Make sure RUBY_VERSION matches the Ruby version in .ruby-version ARG RUBY_VERSION=<%= Gem.ruby_version %> FROM ghcr.io/rails/devcontainer/images/ruby:$RUBY_VERSION + +# Ensure binding is always 0.0.0.0 +# Binds the server to all IP addresses of the container, so it can be accessed from outside the container. +ENV BINDING="0.0.0.0" diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 86cd836c86ab1..08af086e1c453 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -1320,6 +1320,7 @@ def test_devcontainer end assert_file(".devcontainer/Dockerfile") do |content| assert_match(/ARG RUBY_VERSION=#{RUBY_VERSION}/, content) + assert_match(/ENV BINDING="0.0.0.0"/, content) end assert_file("test/application_system_test_case.rb") do |content| assert_match(/^ served_by host: "rails-app", port: ENV\["CAPYBARA_SERVER_PORT"\]/, content) diff --git a/railties/test/generators/devcontainer_generator_test.rb b/railties/test/generators/devcontainer_generator_test.rb index 5261d7de5014d..5f783ac93a048 100644 --- a/railties/test/generators/devcontainer_generator_test.rb +++ b/railties/test/generators/devcontainer_generator_test.rb @@ -346,6 +346,7 @@ def test_system_test_option_skip def test_common_config assert_file(".devcontainer/Dockerfile") do |dockerfile| assert_match(/ARG RUBY_VERSION=#{RUBY_VERSION}/, dockerfile) + assert_match(/ENV BINDING="0.0.0.0"/, dockerfile) end assert_devcontainer_json_file do |devcontainer_json|