Skip to content

Commit 65ffea2

Browse files
feat: Allow temp dir for poetry docker builds (#638)
Co-authored-by: Anton Babenko <[email protected]>
1 parent 9bbe65d commit 65ffea2

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

examples/build-package/main.tf

+1
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,7 @@ module "lambda_layer_poetry" {
426426
{
427427
path = "${path.module}/../fixtures/python-app-poetry"
428428
poetry_install = true
429+
poetry_tmp_dir = "${path.cwd}/../fixtures"
429430
}
430431
]
431432
hash_extra = "extra-hash-to-prevent-conflicts-with-module.package_dir"

package.py

+9-11
Original file line numberDiff line numberDiff line change
@@ -707,7 +707,7 @@ def pip_requirements_step(path, prefix=None, required=False, tmp_dir=None):
707707
hash(requirements)
708708

709709
def poetry_install_step(
710-
path, poetry_export_extra_args=[], prefix=None, required=False
710+
path, poetry_export_extra_args=[], prefix=None, required=False, tmp_dir=None
711711
):
712712
pyproject_file = path
713713
if os.path.isdir(path):
@@ -718,7 +718,7 @@ def poetry_install_step(
718718
"poetry configuration not found: {}".format(pyproject_file)
719719
)
720720
else:
721-
step("poetry", runtime, path, poetry_export_extra_args, prefix)
721+
step("poetry", runtime, path, poetry_export_extra_args, prefix, tmp_dir)
722722
hash(pyproject_file)
723723
pyproject_path = os.path.dirname(pyproject_file)
724724
poetry_lock_file = os.path.join(pyproject_path, "poetry.lock")
@@ -849,6 +849,7 @@ def commands_step(path, commands):
849849
prefix=prefix,
850850
poetry_export_extra_args=poetry_export_extra_args,
851851
required=True,
852+
tmp_dir=claim.get("poetry_tmp_dir"),
852853
)
853854

854855
if npm_requirements and runtime.startswith("nodejs"):
@@ -949,15 +950,12 @@ def execute(self, build_plan, zip_stream, query):
949950
# XXX: timestamp=0 - what actually do with it?
950951
zs.write_dirs(rd, prefix=prefix, timestamp=0)
951952
elif cmd == "poetry":
952-
(
953-
runtime,
954-
path,
955-
poetry_export_extra_args,
956-
prefix,
957-
) = action[1:]
953+
(runtime, path, poetry_export_extra_args, prefix, tmp_dir) = action[
954+
1:
955+
]
958956
log.info("poetry_export_extra_args: %s", poetry_export_extra_args)
959957
with install_poetry_dependencies(
960-
query, path, poetry_export_extra_args
958+
query, path, poetry_export_extra_args, tmp_dir
961959
) as rd:
962960
if rd:
963961
if pf:
@@ -1177,7 +1175,7 @@ def install_pip_requirements(query, requirements_file, tmp_dir):
11771175

11781176

11791177
@contextmanager
1180-
def install_poetry_dependencies(query, path, poetry_export_extra_args):
1178+
def install_poetry_dependencies(query, path, poetry_export_extra_args, tmp_dir):
11811179
# TODO:
11821180
# 1. Emit files instead of temp_dir
11831181

@@ -1231,7 +1229,7 @@ def install_poetry_dependencies(query, path, poetry_export_extra_args):
12311229
working_dir = os.getcwd()
12321230

12331231
log.info("Installing python dependencies with poetry & pip: %s", poetry_lock_file)
1234-
with tempdir() as temp_dir:
1232+
with tempdir(tmp_dir) as temp_dir:
12351233

12361234
def copy_file_to_target(file, temp_dir):
12371235
filename = os.path.basename(file)

0 commit comments

Comments
 (0)