Skip to content

Commit d43501e

Browse files
authored
refactor: modularize setup scripts for better maintainability (#115)
* refactor: modularize setup scripts for better maintainability Replace monolithic entrypoint.sh and user.sh scripts with a modular architecture that separates concerns: - Add scripts/setup.sh as the main orchestrator - Add scripts/setup_user.sh for user creation and configuration - Add scripts/install_software.sh for runtime package installation - Add scripts/entrypoint.sh as a simplified container entry point - Add scripts/ldpretend.sh as a helper utility for cuda python libraries - Add scripts/setup_triton.sh for Triton-specific setup tasks Remove old monolithic scripts: - dockerfiles/entrypoint.sh (replaced by modular scripts) - dockerfiles/user.sh (replaced by setup_user.sh) Update from pip to uv for virtual environment management. This modularization provides a foundation for framework-specific setup scripts and makes the codebase more maintainable and testable. Signed-off-by: Craig Magina <cmagina@redhat.com>
1 parent 0e26c4b commit d43501e

File tree

15 files changed

+778
-520
lines changed

15 files changed

+778
-520
lines changed

.github/workflows/amd-image.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,22 @@ on: # yamllint disable-line rule:truthy
77
paths:
88
- .github/workflows/amd-image.yml
99
- dockerfiles/Dockerfile.triton-amd
10-
- entrypoint.sh
11-
- users.sh
10+
- scripts/entrypoint.sh
11+
- scripts/devinstall_software.sh
12+
- scripts/ldpretend.sh
13+
- scripts/devinstall_triton.sh
14+
- scripts/devcreate_user.sh
15+
- scripts/devsetup.sh
1216
pull_request:
1317
paths:
1418
- .github/workflows/amd-image.yml
1519
- dockerfiles/Dockerfile.triton-amd
16-
- entrypoint.sh
17-
- users.sh
20+
- scripts/entrypoint.sh
21+
- scripts/devinstall_software.sh
22+
- scripts/ldpretend.sh
23+
- scripts/devinstall_triton.sh
24+
- scripts/devcreate_user.sh
25+
- scripts/devsetup.sh
1826
schedule:
1927
- cron: '0 0 * * 0' # Runs every Sunday at midnight UTC
2028
workflow_dispatch:

.github/workflows/cpu-image.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,22 @@ on: # yamllint disable-line rule:truthy
77
paths:
88
- .github/workflows/cpu-image.yml
99
- dockerfiles/Dockerfile.triton-cpu
10-
- entrypoint.sh
11-
- users.sh
10+
- scripts/entrypoint.sh
11+
- scripts/devinstall_software.sh
12+
- scripts/ldpretend.sh
13+
- scripts/devinstall_triton.sh
14+
- scripts/devcreate_user.sh
15+
- scripts/devsetup.sh
1216
pull_request:
1317
paths:
1418
- .github/workflows/cpu-image.yml
1519
- dockerfiles/Dockerfile.triton-cpu
16-
- entrypoint.sh
17-
- users.sh
20+
- scripts/entrypoint.sh
21+
- scripts/devinstall_software.sh
22+
- scripts/ldpretend.sh
23+
- scripts/devinstall_triton.sh
24+
- scripts/devcreate_user.sh
25+
- scripts/devsetup.sh
1826
schedule:
1927
- cron: '0 0 * * 0' # Runs every Sunday at midnight UTC
2028
workflow_dispatch:

.github/workflows/nvidia-image.yml

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,22 @@ on: # yamllint disable-line rule:truthy
77
paths:
88
- .github/workflows/nvidia-image.yml
99
- dockerfiles/Dockerfile.triton
10-
- entrypoint.sh
11-
- users.sh
10+
- scripts/entrypoint.sh
11+
- scripts/devinstall_software.sh
12+
- scripts/ldpretend.sh
13+
- scripts/devinstall_triton.sh
14+
- scripts/devcreate_user.sh
15+
- scripts/devsetup.sh
1216
pull_request:
1317
paths:
1418
- .github/workflows/nvidia-image.yml
1519
- dockerfiles/Dockerfile.triton
16-
- entrypoint.sh
17-
- users.sh
20+
- scripts/entrypoint.sh
21+
- scripts/devinstall_software.sh
22+
- scripts/ldpretend.sh
23+
- scripts/devinstall_triton.sh
24+
- scripts/devcreate_user.sh
25+
- scripts/devsetup.sh
1826
schedule:
1927
- cron: '0 0 * * 0' # Runs every Sunday at midnight UTC
2028
workflow_dispatch:
@@ -29,7 +37,6 @@ jobs:
2937
build-args: |
3038
USERNAME=triton
3139
CUSTOM_LLVM=false
32-
INSTALL_CUDNN=true
3340
platforms: linux/amd64
3441
secrets:
3542
qt_username: ${{ secrets.qt_username }}

Makefile

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,15 @@ TRITON_TAG ?= latest
4040
triton_path ?=$(source_dir)
4141
gitconfig_path ?="$(HOME)/.gitconfig"
4242
USERNAME ?=triton
43-
create_user ?=true
4443
# NOTE: Requires host build system to have a valid Red Hat Subscription if true
4544
INSTALL_NSIGHT ?=false
4645
user_path ?=
46+
INSTALL_TRITON ?= source # Options: release, source, skip
47+
INSTALL_JUPYTER ?= true
48+
USE_CCACHE ?= 0
49+
CUDA_VERSION ?= 12-8
50+
ROCM_VERSION ?= 6.2
51+
MAX_JOBS ?= $(shell nproc --all)
4752

4853
# Modify image tag if CUSTOM_LLVM is enabled
4954
ifeq ($(CUSTOM_LLVM),true)
@@ -80,19 +85,20 @@ gosu-image: image-builder-check ## Build the Triton gosu image
8085
.PHONY: triton-image
8186
triton-image: image-builder-check gosu-image llvm-image ## Build the Triton devcontainer image
8287
$(CTR_CMD) build -t $(IMAGE_REPO)/$(NVIDIA_IMAGE_NAME):$(TRITON_TAG) \
83-
--build-arg CUSTOM_LLVM=$(CUSTOM_LLVM) -f dockerfiles/Dockerfile.triton .
88+
--build-arg CUSTOM_LLVM=$(CUSTOM_LLVM) --build-arg BUILD_CUDA_VERSION=$(CUDA_VERSION) \
89+
-f dockerfiles/Dockerfile.triton .
8490

8591
.PHONY: triton-cpu-image
8692
triton-cpu-image: image-builder-check gosu-image ## Build the Triton CPU image
8793
$(MAKE) llvm-image CUSTOM_LLVM=$(CUSTOM_LLVM) TRITON_CPU_BACKEND=1 LLVM_IMAGE_LABEL=cpu-latest
8894
$(CTR_CMD) build -t $(IMAGE_REPO)/$(CPU_IMAGE_NAME):$(TRITON_TAG) \
89-
--build-arg CUSTOM_LLVM=$(CUSTOM_LLVM) --build-arg TRITON_CPU_BACKEND=1 \
90-
-f dockerfiles/Dockerfile.triton-cpu .
95+
--build-arg CUSTOM_LLVM=$(CUSTOM_LLVM) -f dockerfiles/Dockerfile.triton-cpu .
9196

9297
.PHONY: triton-amd-image
9398
triton-amd-image: image-builder-check gosu-image llvm-image ## Build the Triton AMD devcontainer image
9499
$(CTR_CMD) build -t $(IMAGE_REPO)/$(AMD_IMAGE_NAME):$(TRITON_TAG) \
95-
--build-arg CUSTOM_LLVM=$(CUSTOM_LLVM) -f dockerfiles/Dockerfile.triton-amd .
100+
--build-arg CUSTOM_LLVM=$(CUSTOM_LLVM) --build-arg BUILD_ROCM_VERSION=$(ROCM_VERSION) \
101+
-f dockerfiles/Dockerfile.triton-amd .
96102

97103
##@ Container Run
98104
# If you are on an OS that has the user in /etc/passwd then we can pass
@@ -110,7 +116,7 @@ define run_container
110116
if [ -n "$(user_path)" ]; then \
111117
volume_arg+=" -v $(user_path):/workspace/user$(SELINUXFLAG)"; \
112118
fi; \
113-
if [ "$(OS)" != "Darwin" ] && ! getent passwd $(USER) > /dev/null && [ "$(create_user)" = "false" ]; then \
119+
if [ "$(OS)" != "Darwin" ] && ! getent passwd $(USER) > /dev/null; then \
114120
volume_arg+=" -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro"; \
115121
fi; \
116122
if [ -f "$(gitconfig_path)" ]; then \
@@ -120,7 +126,6 @@ define run_container
120126
fi; \
121127
if [ "$(strip $(1))" = "$(AMD_IMAGE_NAME)" ]; then \
122128
gpu_args="--device=/dev/kfd --device=/dev/dri --security-opt seccomp=unconfined --group-add=video --cap-add=SYS_PTRACE --ipc=host --env HIP_VISIBLE_DEVICES=$(HIP_DEVICES)"; \
123-
profiling_args=""; \
124129
elif [ "$(strip $(1))" = "$(NVIDIA_IMAGE_NAME)" ]; then \
125130
if command -v nvidia-ctk >/dev/null 2>&1 && nvidia-ctk cdi list | grep -q "nvidia.com/gpu=all"; then \
126131
gpu_args="--device nvidia.com/gpu=all"; \
@@ -146,16 +151,12 @@ define run_container
146151
else \
147152
port_arg=""; \
148153
fi; \
149-
env_vars="-e USERNAME=$(USER) -e TORCH_VERSION=$(torch_version) -e CUSTOM_LLVM=$(CUSTOM_LLVM) -e DEMO_TOOLS=$(DEMO_TOOLS) -e NOTEBOOK_PORT=$(NOTEBOOK_PORT)"; \
150-
if [ "$(create_user)" = "true" ]; then \
151-
$(CTR_CMD) run -e CREATE_USER=$(create_user) $$env_vars $$port_arg \
152-
-e USER_UID=`id -u $(USER)` -e USER_GID=`id -g $(USER)` $$gpu_args $$profiling_args $$keep_ns_arg \
153-
-ti $$volume_arg $$gitconfig_arg $(IMAGE_REPO)/$(strip $(1)):$(TRITON_TAG) bash; \
154-
elif [ "$(STRIPPED_CMD)" = "docker" ]; then \
155-
$(CTR_CMD) run --user $(shell id -u):$(shell id -g) $$env_vars $$gpu_args $$profiling_args $$port_arg \
154+
env_vars="-e USERNAME=$(USER) -e USER_UID=`id -u $(USER)` -e USER_GID=`id -g $(USER)` -e TORCH_VERSION=$(torch_version) -e CUSTOM_LLVM=$(CUSTOM_LLVM) -e INSTALL_TOOLS=$(DEMO_TOOLS) -e INSTALL_JUPYTER=$(INSTALL_JUPYTER) -e NOTEBOOK_PORT=$(NOTEBOOK_PORT) -e INSTALL_TRITON=$(INSTALL_TRITON) -e USE_CCACHE=$(USE_CCACHE) -e MAX_JOBS=$(MAX_JOBS)"; \
155+
if [ "$(STRIPPED_CMD)" = "docker" ]; then \
156+
$(CTR_CMD) run $$env_vars $$gpu_args $$profiling_args $$port_arg \
156157
-ti $$volume_arg $$gitconfig_arg $(IMAGE_REPO)/$(strip $(1)):$(TRITON_TAG) bash; \
157158
elif [ "$(STRIPPED_CMD)" = "podman" ]; then \
158-
$(CTR_CMD) run --user $(USER) $$env_vars $$keep_ns_arg $$gpu_args $$profiling_args $$port_arg \
159+
$(CTR_CMD) run $$env_vars $$keep_ns_arg $$gpu_args $$profiling_args $$port_arg \
159160
-ti $$volume_arg $$gitconfig_arg $(IMAGE_REPO)/$(strip $(1)):$(TRITON_TAG) bash; \
160161
fi
161162
endef

dockerfiles/Dockerfile.triton

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (C) 2024-2025 Red Hat, Inc.
1+
# Copyright (C) 2024-2026 Red Hat, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -13,7 +13,9 @@
1313
# limitations under the License.
1414
#
1515
# SPDX-License-Identifier: Apache-2.0
16+
1617
ARG CUSTOM_LLVM=false
18+
ARG BUILD_CUDA_VERSION=12-8
1719

1820
FROM registry.access.redhat.com/ubi9/python-312 AS base
1921
ARG CUSTOM_LLVM
@@ -26,7 +28,7 @@ USER 0
2628
RUN dnf -y update && \
2729
dnf -y install clang cmake lld ninja-build openblas openblas-devel \
2830
llvm llvm-libs libomp libomp-devel sudo && \
29-
dnf clean all
31+
dnf clean all && rm -rf /var/cache/dnf
3032

3133
# Stage for llvm-local-true
3234
FROM base AS llvm-local-true
@@ -38,18 +40,18 @@ ENV TRITON_OFFLINE_BUILD=NO
3840

3941
# Use intermediate stage selection
4042
FROM llvm-local-${CUSTOM_LLVM} AS final
43+
ARG BUILD_CUDA_VERSION
4144

4245
# Create the /workspace directory and set permissions
43-
RUN mkdir -p /workspace && \
44-
python -m venv /workspace && \
46+
WORKDIR /workspace
47+
RUN python -m pip install uv && \
48+
uv venv --python 3.12 --seed /workspace && \
4549
echo "unset BASH_ENV PROMPT_COMMAND ENV" >> /workspace/bin/activate && \
4650
chmod -R 777 /workspace
4751

48-
# Create a symlink to the installed version of CUDA
49-
RUN ln -sf /usr/local/cuda-${CUDA_VERSION/-/.} /usr/local/cuda
50-
5152
ENV BASH_ENV=/workspace/bin/activate \
5253
ENV=/workspace/bin/activate \
54+
CUDA_VERSION=${BUILD_CUDA_VERSION} \
5355
PROMPT_COMMAND=". /workspace/bin/activate" \
5456
PYTHON_VERSION=3.12 \
5557
PATH=/workspace/bin:$PATH \
@@ -58,15 +60,22 @@ ENV BASH_ENV=/workspace/bin/activate \
5860
PYTHONPATH=/workspace/lib/python$PYTHON_VERSION/site-packages \
5961
XDG_CACHE_HOME=/workspace \
6062
TRITON_CACHE_DIR=/workspace/.triton/cache \
61-
TRITON_HOME=/workspace/
63+
TRITON_HOME=/workspace/ \
64+
WORKSPACE=/workspace \
65+
UV_HTTP_TIMEOUT=60
6266

63-
WORKDIR /workspace
64-
RUN echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
65-
RUN echo "export MAX_JOBS=$(nproc --all)" >> "${HOME}"/.bashrc
6667
COPY --from=quay.io/triton-dev-containers/gosu /usr/local/bin/gosu /usr/local/bin/gosu
67-
COPY dockerfiles/user.sh user.sh
68-
COPY dockerfiles/entrypoint.sh /entrypoint.sh
68+
69+
COPY scripts/devinstall_triton.sh /workspace/bin/devinstall_triton
70+
COPY scripts/devcreate_user.sh /workspace/bin/devcreate_user
71+
COPY scripts/devsetup.sh /workspace/bin/devsetup
72+
COPY scripts/devinstall_software.sh /workspace/bin/devinstall_software
73+
COPY scripts/ldpretend.sh /workspace/bin/ldpretend
74+
75+
COPY scripts/entrypoint.sh /entrypoint.sh
76+
6977
COPY hack/triton-gpu-check.py triton-gpu-check.py
7078
COPY examples/flash_attention_demo.ipynb flash_attention_demo.ipynb
79+
7180
ENTRYPOINT ["/entrypoint.sh"]
7281
CMD ["tail", "-f", "/dev/null"]

dockerfiles/Dockerfile.triton-amd

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (C) 2024-2025 Red Hat, Inc.
1+
# Copyright (C) 2024-2026 Red Hat, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -15,17 +15,19 @@
1515
# SPDX-License-Identifier: Apache-2.0
1616

1717
ARG CUSTOM_LLVM=false
18-
ARG ROCM_VERSION=6.2
18+
ARG BUILD_ROCM_VERSION=6.2
1919

2020
# Base Stage with ROCm Installation
2121
FROM registry.access.redhat.com/ubi9/python-312 AS base
22-
ARG ROCM_VERSION=6.2
22+
ARG BUILD_ROCM_VERSION
23+
2324
USER 0
2425

2526
# Install the ROCm rpms
26-
RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \
27+
RUN RHEL_VERSION=$(rpm --eval '%{rhel}') && \
28+
echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \
2729
echo "name=ROCm" >> /etc/yum.repos.d/rocm.repo && \
28-
echo "baseurl=https://repo.radeon.com/rocm/rhel9/$ROCM_VERSION/main" >> /etc/yum.repos.d/rocm.repo && \
30+
echo "baseurl=https://repo.radeon.com/rocm/rhel${RHEL_VERSION}/${BUILD_ROCM_VERSION}/main" >> /etc/yum.repos.d/rocm.repo && \
2931
echo "enabled=1" >> /etc/yum.repos.d/rocm.repo && \
3032
echo "gpgcheck=0" >> /etc/yum.repos.d/rocm.repo && \
3133
dnf install -y llvm clang clang-libs lld && \
@@ -40,10 +42,10 @@ RUN echo "[ROCm]" > /etc/yum.repos.d/rocm.repo && \
4042

4143
# Set environment variables for ROCm
4244
ENV LC_ALL=C.UTF-8 \
43-
LANG=C.UTF-8 \
44-
ROCM_PATH=/opt/rocm \
45-
LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/opt/rocm/lib:/opt/rocm/llvm/lib \
46-
PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH
45+
LANG=C.UTF-8 \
46+
ROCM_PATH=/opt/rocm \
47+
LD_LIBRARY_PATH=/usr/lib64:/usr/lib:/opt/rocm/lib:/opt/rocm/llvm/lib \
48+
PATH=/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH
4749

4850
# LLVM Integration Stages
4951
FROM base AS llvm-local-true
@@ -54,36 +56,45 @@ ENV TRITON_OFFLINE_BUILD=NO
5456

5557
# Final Stage
5658
FROM llvm-local-${CUSTOM_LLVM} AS final
57-
ARG ROCM_VERSION=6.2
59+
ARG BUILD_ROCM_VERSION
5860

5961
# Create the /workspace directory and set permissions
6062
RUN mkdir -p /workspace && \
61-
python -m venv /workspace && \
63+
python -m pip install uv && \
64+
uv venv --python 3.12 --seed /workspace && \
6265
echo "unset BASH_ENV PROMPT_COMMAND ENV" >> /workspace/bin/activate && \
6366
chmod -R 777 /workspace
6467

6568
ENV BASH_ENV=/workspace/bin/activate \
6669
ENV=/workspace/bin/activate \
6770
PROMPT_COMMAND=". /workspace/bin/activate" \
68-
PYTHON_VERSION=3.11 \
71+
PYTHON_VERSION=3.12 \
6972
PATH=/workspace/bin:$PATH \
7073
PYTHONUNBUFFERED=1 \
71-
AMD=true \
72-
ROCM_VERSION=$ROCM_VERSION \
74+
ROCM_VERSION=$BUILD_ROCM_VERSION \
7375
PIP_PREFIX=/workspace \
74-
PYTHONPATH=/workspace/lib/python$PYTHON_VERSION/site-packages \
76+
PYTHONPATH=/workspace/lib/python3.12/site-packages \
7577
XDG_CACHE_HOME=/workspace \
7678
TRITON_CACHE_DIR=/workspace/.triton/cache \
77-
TRITON_HOME=/workspace/
79+
TRITON_HOME=/workspace/ \
80+
WORKSPACE=/workspace \
81+
UV_HTTP_TIMEOUT=60
7882

7983
WORKDIR /workspace
80-
RUN echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
81-
RUN echo "export MAX_JOBS=$(nproc --all)" >> "${HOME}"/.bashrc
84+
8285
COPY --from=quay.io/triton-dev-containers/gosu /usr/local/bin/gosu /usr/local/bin/gosu
83-
COPY dockerfiles/user.sh user.sh
84-
COPY dockerfiles/entrypoint.sh /entrypoint.sh
86+
87+
COPY scripts/devinstall_triton.sh /workspace/bin/devinstall_triton
88+
COPY scripts/devcreate_user.sh /workspace/bin/devcreate_user
89+
COPY scripts/devsetup.sh /workspace/bin/devsetup
90+
COPY scripts/devinstall_software.sh /workspace/bin/devinstall_software
91+
COPY scripts/ldpretend.sh /workspace/bin/ldpretend
92+
93+
COPY scripts/entrypoint.sh /entrypoint.sh
94+
8595
COPY hack/triton-gpu-check.py triton-gpu-check.py
86-
COPY examples/triton-vector-add-rocm.py triton-vector-add-rocm.py
8796
COPY examples/flash_attention_demo.ipynb flash_attention_demo.ipynb
97+
COPY examples/triton-vector-add-rocm.py triton-vector-add-rocm.py
98+
8899
ENTRYPOINT ["/entrypoint.sh"]
89100
CMD ["tail", "-f", "/dev/null"]

dockerfiles/Dockerfile.triton-cpu

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright (C) 2024-2025 Red Hat, Inc.
1+
# Copyright (C) 2024-2026 Red Hat, Inc.
22
#
33
# Licensed under the Apache License, Version 2.0 (the "License");
44
# you may not use this file except in compliance with the License.
@@ -39,9 +39,11 @@ FROM llvm-local-${CUSTOM_LLVM} AS final
3939

4040
# Create the /workspace directory and set permissions
4141
RUN mkdir -p /workspace && \
42-
python -m venv /workspace && \
42+
python -m pip install uv && \
43+
uv venv --python 3.12 --seed /workspace && \
4344
echo "unset BASH_ENV PROMPT_COMMAND ENV" >> /workspace/bin/activate && \
4445
chmod -R 777 /workspace
46+
4547
ENV BASH_ENV=/workspace/bin/activate \
4648
ENV=/workspace/bin/activate \
4749
PROMPT_COMMAND=". /workspace/bin/activate" \
@@ -53,14 +55,22 @@ ENV BASH_ENV=/workspace/bin/activate \
5355
PYTHONPATH=/workspace/lib/python$PYTHON_VERSION/site-packages \
5456
XDG_CACHE_HOME=/workspace \
5557
TRITON_CACHE_DIR=/workspace/.triton/cache \
56-
TRITON_HOME=/workspace/
58+
TRITON_HOME=/workspace/ \
59+
WORKSPACE=/workspace \
60+
UV_HTTP_TIMEOUT=60
5761

5862
WORKDIR /workspace
59-
RUN echo 'export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
60-
RUN echo "export MAX_JOBS=$(nproc --all)" >> "${HOME}"/.bashrc
63+
6164
COPY --from=quay.io/triton-dev-containers/gosu /usr/local/bin/gosu /usr/local/bin/gosu
62-
COPY dockerfiles/user.sh user.sh
63-
COPY dockerfiles/entrypoint.sh /entrypoint.sh
65+
66+
COPY scripts/devinstall_triton.sh /workspace/bin/devinstall_triton
67+
COPY scripts/devcreate_user.sh /workspace/bin/devcreate_user
68+
COPY scripts/devsetup.sh /workspace/bin/devsetup
69+
COPY scripts/devinstall_software.sh /workspace/bin/devinstall_software
70+
COPY scripts/ldpretend.sh /workspace/bin/ldpretend
71+
72+
COPY scripts/entrypoint.sh /entrypoint.sh
6473
COPY hack/triton-gpu-check.py triton-gpu-check.py
74+
6575
ENTRYPOINT ["/entrypoint.sh"]
6676
CMD ["tail", "-f", "/dev/null"]

0 commit comments

Comments
 (0)