From 1f939f779ebb7e65c40e89e2d01f90e272ca8059 Mon Sep 17 00:00:00 2001 From: Pedro Piza Date: Mon, 28 Apr 2025 23:42:39 -0500 Subject: [PATCH] [Feature] Add support for tc.host using javaproperties --- Gemfile.lock | 2 ++ core/Gemfile.lock | 8 ++++---- core/lib/testcontainers/docker_container.rb | 8 +++++--- core/testcontainers-core.gemspec | 2 +- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 797f10a..4655070 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -15,6 +15,7 @@ PATH specs: testcontainers-core (0.2.0) docker-api (~> 2.2) + java-properties (~> 0.3.0) PATH remote: elasticsearch @@ -104,6 +105,7 @@ GEM ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) ffi (1.15.5) + java-properties (0.3.0) json (2.6.3) language_server-protocol (3.17.0.3) lint_roller (1.0.0) diff --git a/core/Gemfile.lock b/core/Gemfile.lock index 44ff35f..827543b 100644 --- a/core/Gemfile.lock +++ b/core/Gemfile.lock @@ -3,20 +3,22 @@ PATH specs: testcontainers-core (0.2.0) docker-api (~> 2.2) - properties-ruby (~> 0.0.4) + java-properties (~> 0.3.0) GEM remote: https://rubygems.org/ specs: ast (2.4.2) + coderay (1.1.3) docker-api (2.2.0) excon (>= 0.47.0) multi_json excon (0.99.0) + java-properties (0.3.0) json (2.6.3) language_server-protocol (3.17.0.3) lint_roller (1.0.0) - logeasy (0.0.8) + method_source (1.1.0) minitest (5.18.0) minitest-hooks (1.5.0) minitest (> 5.3) @@ -24,8 +26,6 @@ GEM parallel (1.23.0) parser (3.2.2.1) ast (~> 2.4.1) - properties-ruby (0.0.4) - logeasy (>= 0.0.4) rainbow (3.1.1) rake (13.0.6) regexp_parser (2.8.0) diff --git a/core/lib/testcontainers/docker_container.rb b/core/lib/testcontainers/docker_container.rb index cb7b81e..1df6d3c 100644 --- a/core/lib/testcontainers/docker_container.rb +++ b/core/lib/testcontainers/docker_container.rb @@ -1,4 +1,5 @@ -require 'properties-ruby' +require 'java-properties' + module Testcontainers # The DockerContainer class is used to manage Docker containers. # It provides an interface to create, start, stop, and manipulate containers @@ -473,8 +474,9 @@ def use # @raise [ConnectionError] If the connection to the Docker daemon fails. # @raise [NotFoundError] If Docker is unable to find the image. def start - properties = Utils::Properties.load_from_file(File.expand_path('~/.testcontainers.properties')) - tc_host = properties.get(:"tc.host") + properties = JavaProperties.load(File.expand_path('~/.testcontainers.properties')) + + tc_host = ENV["TESTCONTAINERS_HOST"] || properties[:"tc.host"] if tc_host && !tc_host.empty? Docker.url = tc_host diff --git a/core/testcontainers-core.gemspec b/core/testcontainers-core.gemspec index dbb3816..7ee45a4 100644 --- a/core/testcontainers-core.gemspec +++ b/core/testcontainers-core.gemspec @@ -31,7 +31,7 @@ Gem::Specification.new do |spec| # Uncomment to register a new dependency of your gem spec.add_dependency "docker-api", "~> 2.2" - spec.add_dependency "properties-ruby", "~> 0.0.4" + spec.add_dependency "java-properties", "~> 0.3.0" spec.add_development_dependency "rake", "~> 13.0" spec.add_development_dependency "minitest", "~> 5.0"