|
29 | 29 | --mount=type=bind,target=uv.lock,src=uv.lock \ |
30 | 30 | --mount=type=bind,target=pyproject.toml,src=pyproject.toml \ |
31 | 31 | $PIP_SECRET_MOUNT \ |
32 | | - uv sync $PIP_INSTALL_ARGS && \ |
33 | | - chown -R flytekit /root/.venv |
| 32 | + uv sync $PIP_INSTALL_ARGS |
34 | 33 | WORKDIR / |
35 | 34 |
|
36 | 35 | # Update PATH and UV_PYTHON to point to the venv created by uv sync |
|
55 | 54 | --mount=type=bind,target=poetry.lock,src=poetry.lock \ |
56 | 55 | --mount=type=bind,target=pyproject.toml,src=pyproject.toml \ |
57 | 56 | $PIP_SECRET_MOUNT \ |
58 | | - poetry install $PIP_INSTALL_ARGS && \ |
59 | | - chown -R flytekit /root/.venv |
| 57 | + poetry install $PIP_INSTALL_ARGS |
| 58 | +
|
60 | 59 | WORKDIR / |
61 | 60 |
|
62 | 61 | # Update PATH and UV_PYTHON to point to venv |
63 | | -ENV PATH="/root/.venv/bin:$$PATH" \ |
| 62 | +ENV PATH="/root/.venv/bin:$$PATH" \ |
64 | 63 | UV_PYTHON=/root/.venv/bin/python |
65 | 64 | """ |
66 | 65 | ) |
|
82 | 81 | $APT_PACKAGES |
83 | 82 | """) |
84 | 83 |
|
85 | | -# make sure that micromamba python installation is owned by flytekit user |
86 | 84 | MICROMAMBA_INSTALL_COMMAND_TEMPLATE = Template("""\ |
87 | 85 | RUN --mount=type=cache,sharing=locked,mode=0777,target=/opt/micromamba/pkgs,\ |
88 | 86 | id=micromamba \ |
|
93 | 91 | python=$PYTHON_VERSION $CONDA_PACKAGES \ |
94 | 92 | || micromamba install -n runtime --root-prefix /opt/micromamba \ |
95 | 93 | -c conda-forge $CONDA_CHANNELS \ |
96 | | - python=$PYTHON_VERSION $CONDA_PACKAGES ) && \ |
97 | | - chown -R flytekit /opt/micromamba |
| 94 | + python=$PYTHON_VERSION $CONDA_PACKAGES ) |
98 | 95 | """) |
99 | 96 |
|
100 | 97 | DOCKER_FILE_TEMPLATE = Template("""\ |
|
112 | 109 | mkdir -p /etc/ssl/certs/ && cp /tmp/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt |
113 | 110 |
|
114 | 111 | RUN id -u flytekit || useradd --create-home --shell /bin/bash flytekit |
115 | | -RUN chown -R flytekit /root && chown -R flytekit /home |
| 112 | +RUN chown flytekit /root && chown -R flytekit /home |
116 | 113 |
|
117 | 114 | $INSTALL_PYTHON_TEMPLATE |
118 | 115 |
|
|
125 | 122 | SSL_CERT_DIR=/etc/ssl/certs \ |
126 | 123 | $ENV |
127 | 124 |
|
128 | | -$PYTHON_INSTALL_COMMAND |
| 125 | +$UV_PYTHON_INSTALL_COMMAND |
129 | 126 |
|
130 | 127 | # Adds nvidia just in case it exists |
131 | 128 | ENV PATH="$$PATH:/usr/local/nvidia/bin:/usr/local/cuda/bin" \ |
@@ -343,7 +340,7 @@ def create_docker_context(image_spec: ImageSpec, tmp_dir: Path): |
343 | 340 | ) |
344 | 341 | raise ValueError(msg) |
345 | 342 |
|
346 | | - python_install_command = prepare_python_install(image_spec, tmp_dir) |
| 343 | + uv_python_install_command = prepare_python_install(image_spec, tmp_dir) |
347 | 344 | env_dict = {"PYTHONPATH": "/root"} |
348 | 345 |
|
349 | 346 | if image_spec.env: |
@@ -429,11 +426,11 @@ def create_docker_context(image_spec: ImageSpec, tmp_dir: Path): |
429 | 426 | _f_img_id_env = f"{_F_IMG_ID}={image_spec.id}" |
430 | 427 |
|
431 | 428 | docker_content = DOCKER_FILE_TEMPLATE.substitute( |
| 429 | + UV_PYTHON_INSTALL_COMMAND=uv_python_install_command, |
| 430 | + APT_INSTALL_COMMAND=apt_install_command, |
432 | 431 | INSTALL_PYTHON_TEMPLATE=python_install_template.template, |
433 | 432 | EXTRA_PATH=python_install_template.extra_path, |
434 | 433 | PYTHON_EXEC=python_install_template.python_exec, |
435 | | - APT_INSTALL_COMMAND=apt_install_command, |
436 | | - PYTHON_INSTALL_COMMAND=python_install_command, |
437 | 434 | BASE_IMAGE=base_image, |
438 | 435 | ENV=env, |
439 | 436 | _F_IMG_ID_ENV=_f_img_id_env, |
|
0 commit comments