88 "time"
99
1010 "github.com/docker/docker/api/types/container"
11+ "github.com/docker/go-connections/nat"
1112
1213 "github.com/smartcontractkit/chainlink-testing-framework/framework"
1314
@@ -59,7 +60,8 @@ func newTron(in *Input) (*Output, error) {
5960 ctx := context .Background ()
6061
6162 containerName := framework .DefaultTCName ("blockchain-node" )
62- bindPort := fmt .Sprintf ("%s/tcp" , in .Port )
63+ // Tron container always listens on port 9090 internally
64+ containerPort := fmt .Sprintf ("%s/tcp" , DefaultTronPort )
6365
6466 accounts , err := os .CreateTemp ("" , "accounts.json" )
6567 if err != nil {
@@ -79,14 +81,22 @@ func newTron(in *Input) (*Output, error) {
7981 AlwaysPullImage : in .PullImage ,
8082 Image : in .Image ,
8183 Name : containerName ,
82- ExposedPorts : []string {bindPort },
84+ ExposedPorts : []string {containerPort },
8385 Networks : []string {framework .DefaultNetworkName },
8486 NetworkAliases : map [string ][]string {
8587 framework .DefaultNetworkName : {containerName },
8688 },
8789 Labels : framework .DefaultTCLabels (),
8890 HostConfigModifier : func (h * container.HostConfig ) {
89- h .PortBindings = framework .MapTheSamePort (bindPort )
91+ // Map user-provided host port to container's default port (9090)
92+ h .PortBindings = nat.PortMap {
93+ nat .Port (containerPort ): []nat.PortBinding {
94+ {
95+ HostIP : "0.0.0.0" ,
96+ HostPort : in .Port ,
97+ },
98+ },
99+ }
90100 framework .ResourceLimitsFunc (h , in .ContainerResources )
91101 },
92102 WaitingFor : wait .ForLog ("Mnemonic" ).WithPollInterval (200 * time .Millisecond ).WithStartupTimeout (1 * time .Minute ),
@@ -121,7 +131,7 @@ func newTron(in *Input) (*Output, error) {
121131 Nodes : []* Node {
122132 {
123133 ExternalHTTPUrl : fmt .Sprintf ("http://%s:%s" , host , in .Port ),
124- InternalHTTPUrl : fmt .Sprintf ("http://%s:%s" , containerName , in . Port ),
134+ InternalHTTPUrl : fmt .Sprintf ("http://%s:%s" , containerName , DefaultTronPort ),
125135 },
126136 },
127137 }, nil
0 commit comments