Skip to content

Commit a85924c

Browse files
committedMay 1, 2025
chore(ray): build user defined grpc protos in image
1 parent a6d28f0 commit a85924c

File tree

4 files changed

+32
-14
lines changed

4 files changed

+32
-14
lines changed
 

‎instill/helpers/cli.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,6 @@ def init(_):
141141
__file__.replace("cli.py", "init-templates/model.py"),
142142
f"{os.getcwd()}/model.py",
143143
)
144-
shutil.copyfile(
145-
__file__.replace("cli.py", "init-templates/.dockerignore"),
146-
f"{os.getcwd()}/.dockerignore",
147-
)
148144

149145

150146
def find_project_root(start_path):
@@ -237,8 +233,8 @@ def process_arm64_packages(python_pkg_list, target_arch):
237233
filtered_pkg_list.append(pkg)
238234

239235
python_pkg_list = filtered_pkg_list
240-
if vllm_version is not None:
241-
dockerfile = "Dockerfile.arm"
236+
if vllm_version is not None and target_arch == "arm64":
237+
dockerfile = "Dockerfile.vllm"
242238

243239
python_pkg_str = " ".join(python_pkg_list)
244240
target_arch_suffix = "-aarch64" if target_arch == "arm64" else ""
@@ -343,12 +339,18 @@ def build(args):
343339
) = process_arm64_packages(python_pkg_list, args.target_arch)
344340

345341
with tempfile.TemporaryDirectory() as tmpdir:
342+
346343
# Copy files to tmpdir
347-
shutil.copyfile(
348-
__file__.replace("cli.py", f"docker/{dockerfile}"),
349-
f"{tmpdir}/{dockerfile}",
344+
docker_dir = __file__.replace("cli.py", "docker")
345+
shutil.copyfile(f"{docker_dir}/{dockerfile}", f"{tmpdir}/Dockerfile")
346+
shutil.copyfile(f"{docker_dir}/.dockerignore", f"{tmpdir}/.dockerignore")
347+
shutil.copytree(
348+
os.getcwd(),
349+
tmpdir,
350+
ignore=shutil.ignore_patterns("model.py"),
351+
dirs_exist_ok=True,
350352
)
351-
shutil.copytree(os.getcwd(), tmpdir, dirs_exist_ok=True)
353+
shutil.copyfile(f"{os.getcwd()}/model.py", f"{tmpdir}/_model.py")
352354

353355
# Handle SDK wheel if provided
354356
if args.sdk_wheel is not None:

‎instill/helpers/docker/.dockerignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,6 @@ __pycache__
1818

1919
# Exclude model config file
2020
instill.yaml
21+
22+
# Exclude Dockerfile
23+
Dockerfile*

‎instill/helpers/docker/Dockerfile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \
2727
pip install --default-timeout=1000 $package; \
2828
done
2929

30-
COPY --chown=ray:users --exclude=model.py . .
30+
COPY --chown=ray:users . .
3131

3232
ARG INSTILL_PYTHON_SDK_PROJECT_NAME
3333
ARG INSTILL_PYTHON_SDK_VERSION
@@ -40,4 +40,8 @@ RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \
4040
pip install --default-timeout=1000 instill-sdk==${INSTILL_PYTHON_SDK_VERSION}; \
4141
fi;
4242

43-
COPY --chown=ray:users model.py _model.py
43+
# Download protobuf definition from GitHub
44+
RUN curl -L https://raw.githubusercontent.com/instill-ai/protobufs/1427cfe974daf443987b08a97fe4ff1cd9fcd7c8/model/ray/v1alpha/user_defined.proto -o user_defined.proto
45+
46+
RUN python -m grpc_tools.protoc -I=. --python_out=. --pyi_out=. --grpc_python_out=. ./user_defined.proto
47+
ENV PYTHONPATH=/home/ray

‎instill/helpers/docker/Dockerfile.arm renamed to ‎instill/helpers/docker/Dockerfile.vllm

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \
7575
done
7676

7777
WORKDIR /home/ray
78-
COPY --chown=ray:users --exclude=model.py . .
79-
COPY --chown=ray:users model.py _model.py
78+
COPY --chown=ray:users . .
8079

8180
ARG INSTILL_PYTHON_SDK_PROJECT_NAME
8281
ARG INSTILL_PYTHON_SDK_VERSION
@@ -90,3 +89,13 @@ RUN --mount=type=cache,target=/root/.cache/pip,sharing=locked \
9089
fi;
9190

9291
USER ray
92+
93+
COPY --chown=ray:users requirements.txt .
94+
RUN pip install --upgrade pip setuptools wheel
95+
RUN pip install -r requirements.txt
96+
97+
# Download protobuf definition from GitHub
98+
RUN curl -L https://raw.githubusercontent.com/instill-ai/protobufs/1427cfe974daf443987b08a97fe4ff1cd9fcd7c8/model/ray/v1alpha/user_defined.proto -o user_defined.proto
99+
100+
RUN python -m grpc_tools.protoc -I=. --python_out=. --pyi_out=. --grpc_python_out=. ./user_defined.proto
101+
ENV PYTHONPATH=/home/ray

0 commit comments

Comments
 (0)
Failed to load comments.