@@ -163,34 +163,49 @@ def create_deployment(
163163ZIP_FILE_NAME = "deployment.zip"
164164
165165
166- def prepare_dependency_archive (directory : str ) -> None :
166+ def prepare_dependency_archive (directory : str , docker_network : str ) -> None :
167167 cmd = f"docker images -q { DOCKER_IMAGE_NAME } "
168168 image_exists = cmd_output (cmd )
169169
170170 if not image_exists :
171- logger .info ("Building docker image..." )
172- cmd = (
173- f"{ PLATFORM_ENV_VAR } docker build -t { DOCKER_IMAGE_NAME } "
174- f"-f Dockerfile.dependencies ."
175- )
171+ logger .info (f"Building docker image with docker network: { docker_network } ..." )
172+ cmd = docker_build_cmd (docker_network )
176173 cmd_output (cmd )
177174
178175 with tempfile .TemporaryDirectory () as temp_dir :
179- logger .info ("Building dependencies archive" )
176+ logger .info (f "Building dependencies archive with docker network: { docker_network } " )
180177 shutil .copy ("requirements.txt" , temp_dir )
181178 shutil .copy ("build_native_dependencies.sh" , temp_dir )
182- cmd = (
183- f"{ PLATFORM_ENV_VAR } docker run --rm "
184- f"-v { temp_dir } :/workspace "
185- f"{ DOCKER_IMAGE_NAME } "
186- )
179+ cmd = docker_run_cmd (docker_network , temp_dir )
187180 cmd_output (cmd )
188181 archives_temp_path = os .path .join (temp_dir , DEPENDENCIES_ARCHIVE_FULL_NAME )
189182 os .makedirs (os .path .dirname (DEPENDENCIES_ARCHIVE_PATH ), exist_ok = True )
190183 shutil .copy (archives_temp_path , DEPENDENCIES_ARCHIVE_PATH )
191184
192185 logger .info (f"Dependencies archived to { DEPENDENCIES_ARCHIVE_PATH } " )
193186
187+ def docker_build_cmd (network : str ) -> str :
188+ cmd = (
189+ f"{ PLATFORM_ENV_VAR } docker build -t { DOCKER_IMAGE_NAME } "
190+ f"--file Dockerfile.dependencies . "
191+ )
192+
193+ if network != "default" :
194+ cmd = cmd + f"--network { network } "
195+ logger .debug (f"Docker build command: { cmd } " )
196+ return cmd
197+
198+ def docker_run_cmd (network : str , temp_dir ) -> str :
199+ cmd = (
200+ f"{ PLATFORM_ENV_VAR } docker run --rm "
201+ f"-v { temp_dir } :/workspace "
202+ f"{ DOCKER_IMAGE_NAME } "
203+ )
204+
205+ if network != "default" :
206+ cmd = cmd + f"--network { network } "
207+ logger .debug (f"Docker run command: { cmd } " )
208+ return cmd
194209
195210class DeploymentsResponse (BaseModel ):
196211 deploymentStatus : str
@@ -366,13 +381,14 @@ def upload_zip(file_upload_url: str) -> None:
366381
367382def zip (
368383 directory : str ,
384+ docker_network : str ,
369385):
370386 # Create a zip file excluding .DS_Store files
371387 import zipfile
372388
373389 # prepare payload only if requirements.txt is non-empty
374390 if has_nonempty_requirements_file (directory ):
375- prepare_dependency_archive (directory )
391+ prepare_dependency_archive (directory , docker_network )
376392 else :
377393 logger .info (
378394 f"Skipping dependency archive: requirements.txt is missing or empty "
@@ -396,6 +412,7 @@ def deploy_full(
396412 directory : str ,
397413 metadata : TransformationJobMetadata ,
398414 credentials : Credentials ,
415+ docker_network : str ,
399416 callback = None ,
400417) -> AccessTokenResponse :
401418 """Deploy a data transform in the DataCloud."""
@@ -406,7 +423,7 @@ def deploy_full(
406423
407424 # create deployment and upload payload
408425 deployment = create_deployment (access_token , metadata )
409- zip (directory )
426+ zip (directory , docker_network )
410427 upload_zip (deployment .fileUploadUrl )
411428 wait_for_deployment (access_token , metadata , callback )
412429
0 commit comments