@@ -112,7 +112,11 @@ def __init__(
112112 self .container = None
113113
114114 def process (
115- self , processing_inputs , processing_output_config , environment , processing_job_name
115+ self ,
116+ processing_inputs ,
117+ processing_output_config ,
118+ environment ,
119+ processing_job_name ,
116120 ):
117121 """Run a processing job locally using docker-compose.
118122
@@ -139,7 +143,11 @@ def process(
139143 for host in self .hosts :
140144 _create_processing_config_file_directories (self .container_root , host )
141145 self .write_processing_config_files (
142- host , environment , processing_inputs , processing_output_config , processing_job_name
146+ host ,
147+ environment ,
148+ processing_inputs ,
149+ processing_output_config ,
150+ processing_job_name ,
143151 )
144152
145153 self ._generate_compose_file (
@@ -381,7 +389,12 @@ def retrieve_artifacts(self, compose_data, output_data_config, job_name):
381389 return os .path .join (output_data , "model.tar.gz" )
382390
383391 def write_processing_config_files (
384- self , host , environment , processing_inputs , processing_output_config , processing_job_name
392+ self ,
393+ host ,
394+ environment ,
395+ processing_inputs ,
396+ processing_output_config ,
397+ processing_job_name ,
385398 ):
386399 """Write the config files for the processing containers.
387400
@@ -1080,8 +1093,14 @@ def _ecr_login_if_needed(boto_session, image):
10801093 token = raw_token .decode ("utf-8" ).strip ("AWS:" )
10811094 ecr_url = auth ["authorizationData" ][0 ]["proxyEndpoint" ]
10821095
1083- cmd = "docker login -u AWS -p %s %s" % (token , ecr_url )
1084- subprocess .check_output (cmd .split ())
1096+ # Log in to ecr, but use communicate to not print creds to the console
1097+ cmd = f"docker login { ecr_url } -u AWS --password-stdin" .split ()
1098+ proc = subprocess .Popen (
1099+ cmd ,
1100+ stdin = subprocess .PIPE ,
1101+ )
1102+
1103+ proc .communicate (input = token .encode ())
10851104
10861105 return True
10871106
0 commit comments