@@ -163,27 +163,22 @@ 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 (
177+ f"Building dependencies archive with docker network: { docker_network } "
178+ )
180179 shutil .copy ("requirements.txt" , temp_dir )
181180 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- )
181+ cmd = docker_run_cmd (docker_network , temp_dir )
187182 cmd_output (cmd )
188183 archives_temp_path = os .path .join (temp_dir , DEPENDENCIES_ARCHIVE_FULL_NAME )
189184 os .makedirs (os .path .dirname (DEPENDENCIES_ARCHIVE_PATH ), exist_ok = True )
@@ -192,6 +187,31 @@ def prepare_dependency_archive(directory: str) -> None:
192187 logger .info (f"Dependencies archived to { DEPENDENCIES_ARCHIVE_PATH } " )
193188
194189
190+ def docker_build_cmd (network : str ) -> str :
191+ cmd = (
192+ f"{ PLATFORM_ENV_VAR } docker build -t { DOCKER_IMAGE_NAME } "
193+ f"--file Dockerfile.dependencies . "
194+ )
195+
196+ if network != "default" :
197+ cmd = cmd + f"--network { network } "
198+ logger .debug (f"Docker build command: { cmd } " )
199+ return cmd
200+
201+
202+ def docker_run_cmd (network : str , temp_dir ) -> str :
203+ cmd = (
204+ f"{ PLATFORM_ENV_VAR } docker run --rm "
205+ f"-v { temp_dir } :/workspace "
206+ f"{ DOCKER_IMAGE_NAME } "
207+ )
208+
209+ if network != "default" :
210+ cmd = cmd + f"--network { network } "
211+ logger .debug (f"Docker run command: { cmd } " )
212+ return cmd
213+
214+
195215class DeploymentsResponse (BaseModel ):
196216 deploymentStatus : str
197217
@@ -366,13 +386,14 @@ def upload_zip(file_upload_url: str) -> None:
366386
367387def zip (
368388 directory : str ,
389+ docker_network : str ,
369390):
370391 # Create a zip file excluding .DS_Store files
371392 import zipfile
372393
373394 # prepare payload only if requirements.txt is non-empty
374395 if has_nonempty_requirements_file (directory ):
375- prepare_dependency_archive (directory )
396+ prepare_dependency_archive (directory , docker_network )
376397 else :
377398 logger .info (
378399 f"Skipping dependency archive: requirements.txt is missing or empty "
@@ -396,6 +417,7 @@ def deploy_full(
396417 directory : str ,
397418 metadata : TransformationJobMetadata ,
398419 credentials : Credentials ,
420+ docker_network : str ,
399421 callback = None ,
400422) -> AccessTokenResponse :
401423 """Deploy a data transform in the DataCloud."""
@@ -406,7 +428,7 @@ def deploy_full(
406428
407429 # create deployment and upload payload
408430 deployment = create_deployment (access_token , metadata )
409- zip (directory )
431+ zip (directory , docker_network )
410432 upload_zip (deployment .fileUploadUrl )
411433 wait_for_deployment (access_token , metadata , callback )
412434
0 commit comments