diff --git a/railties/lib/rails/generators/app_base.rb b/railties/lib/rails/generators/app_base.rb index e0c34699fd0d8..17202a1a49598 100644 --- a/railties/lib/rails/generators/app_base.rb +++ b/railties/lib/rails/generators/app_base.rb @@ -520,11 +520,11 @@ def dockerfile_build_packages # how python is installed with the bullseye release. Below # is based on debian release included with the Ruby images on # Dockerhub. - case Gem.ruby_version - when /^2.7/ - bullseye = ruby_version >= "2.7.4" - when /^3.0/ - bullseye = ruby_version >= "3.0.2" + case Gem.ruby_version.to_s + when /^2\.7/ + bullseye = Gem.ruby_version >= "2.7.4" + when /^3\.0/ + bullseye = Gem.ruby_version >= "3.0.2" else bullseye = true end diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index a116c0f867831..953f9be23952d 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -1047,6 +1047,17 @@ def test_dockerfile end end + def test_old_rubies_do_not_use_bullseye_python + Gem.stub(:ruby_version, Gem::Version.new("2.7.0")) do + run_generator [destination_root, "--js=esbuild"] + end + + assert_file "Dockerfile" do |content| + assert_match(/python/, content) + assert_no_match(/python-is-python3/, content) + end + end + def test_skip_docker run_generator [destination_root, "--skip-docker"]