From 8edf181495b03747944ce0b1f835fd8029646e2e Mon Sep 17 00:00:00 2001 From: Junhao Liao Date: Sun, 12 Oct 2025 20:10:16 -0400 Subject: [PATCH 1/3] chore(docker): Use `COPY --link` for improved file copying efficiency (resolves #1408). --- .../tools/docker-images/clp-core-ubuntu-jammy/Dockerfile | 2 +- .../docker-images/clp-env-base-centos-stream-9/Dockerfile | 2 +- .../clp-env-base-manylinux_2_28-aarch64/Dockerfile | 2 +- .../clp-env-base-manylinux_2_28-x86_64/Dockerfile | 2 +- .../clp-env-base-musllinux_1_2-aarch64/Dockerfile | 2 +- .../clp-env-base-musllinux_1_2-x86_64/Dockerfile | 2 +- .../docker-images/clp-env-base-ubuntu-jammy/Dockerfile | 2 +- tools/docker-images/clp-package/Dockerfile | 6 +++--- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile b/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile index 1ef6262b08..58af224c44 100644 --- a/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile +++ b/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile @@ -22,7 +22,7 @@ ADD ./make-dictionaries-readable ./ # Flatten the image FROM scratch -COPY --from=base / / +COPY --link --from=base / / WORKDIR /clp diff --git a/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile b/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile index 4375a5c26b..a0d7f47682 100644 --- a/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile @@ -18,4 +18,4 @@ RUN dnf clean all \ # Flatten the image FROM scratch -COPY --from=base / / +COPY --link --from=base / / diff --git a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile index b47ab452d0..f7494ac641 100644 --- a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile @@ -3,7 +3,7 @@ FROM quay.io/pypa/manylinux_2_28_aarch64 WORKDIR /root RUN mkdir -p ./tools/scripts/lib_install -COPY ./tools/scripts/lib_install ./tools/scripts/lib_install +COPY --link ./tools/scripts/lib_install ./tools/scripts/lib_install RUN pipx uninstall cmake RUN pipx uninstall uv diff --git a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile index 0a11a31f7a..b8faf6e38f 100644 --- a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile @@ -3,7 +3,7 @@ FROM quay.io/pypa/manylinux_2_28_x86_64 WORKDIR /root RUN mkdir -p ./tools/scripts/lib_install -COPY ./tools/scripts/lib_install ./tools/scripts/lib_install +COPY --link ./tools/scripts/lib_install ./tools/scripts/lib_install RUN pipx uninstall cmake RUN pipx uninstall uv diff --git a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile index d6e1d5cd92..e572251d26 100644 --- a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile @@ -3,7 +3,7 @@ FROM quay.io/pypa/musllinux_1_2_aarch64 WORKDIR /root RUN mkdir -p ./tools/scripts/lib_install -COPY ./tools/scripts/lib_install ./tools/scripts/lib_install +COPY --link ./tools/scripts/lib_install ./tools/scripts/lib_install RUN pipx uninstall cmake RUN pipx uninstall uv diff --git a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile index 65e92cf197..858ceabe03 100644 --- a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile @@ -3,7 +3,7 @@ FROM quay.io/pypa/musllinux_1_2_x86_64 AS base WORKDIR /root RUN mkdir -p ./tools/scripts/lib_install -COPY ./tools/scripts/lib_install ./tools/scripts/lib_install +COPY --link ./tools/scripts/lib_install ./tools/scripts/lib_install RUN pipx uninstall cmake RUN pipx uninstall uv diff --git a/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile b/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile index 993bb8ae82..7b4e16f0f4 100644 --- a/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile @@ -18,4 +18,4 @@ RUN apt-get clean \ # Flatten the image FROM scratch -COPY --from=base / / +COPY --link --from=base / / diff --git a/tools/docker-images/clp-package/Dockerfile b/tools/docker-images/clp-package/Dockerfile index 9d1bc5c71e..d3f7c3cf1b 100644 --- a/tools/docker-images/clp-package/Dockerfile +++ b/tools/docker-images/clp-package/Dockerfile @@ -2,7 +2,7 @@ FROM ubuntu:jammy AS base WORKDIR /root -COPY ./tools/docker-images/clp-package/setup-scripts ./setup-scripts +COPY --link ./tools/docker-images/clp-package/setup-scripts ./setup-scripts RUN ./setup-scripts/install-prebuilt-packages.sh \ && rm -rf ./setup-scripts/ @@ -17,8 +17,8 @@ ENV PYTHONPATH="${CLP_HOME}/lib/python3/site-packages" USER 1000:1000 -COPY ./build/clp-package /opt/clp +COPY --link ./build/clp-package /opt/clp # Flatten the image FROM scratch -COPY --from=base / / +COPY --link --from=base / / From 9ba1140c4b74e9a72b76914a194abeaa33e51f5b Mon Sep 17 00:00:00 2001 From: Junhao Liao Date: Fri, 17 Oct 2025 15:59:31 -0400 Subject: [PATCH 2/3] chore(docker): Add syntax declaration to Dockerfiles --- .../core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile | 2 ++ .../tools/docker-images/clp-env-base-centos-stream-9/Dockerfile | 2 ++ .../clp-env-base-manylinux_2_28-aarch64/Dockerfile | 2 ++ .../docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile | 2 ++ .../docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile | 2 ++ .../docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile | 2 ++ .../tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile | 2 ++ tools/docker-images/clp-package/Dockerfile | 2 ++ 8 files changed, 16 insertions(+) diff --git a/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile b/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile index 58af224c44..29bc299fc6 100644 --- a/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile +++ b/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM ubuntu:jammy AS base # Install runtime dependencies diff --git a/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile b/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile index a0d7f47682..dc7b573a15 100644 --- a/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM dokken/centos-stream-9 AS base WORKDIR /root diff --git a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile index f7494ac641..3fb9747253 100644 --- a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-aarch64/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM quay.io/pypa/manylinux_2_28_aarch64 WORKDIR /root diff --git a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile index b8faf6e38f..4d2fb54b0f 100644 --- a/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-manylinux_2_28-x86_64/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM quay.io/pypa/manylinux_2_28_x86_64 WORKDIR /root diff --git a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile index e572251d26..5dacb6b846 100644 --- a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-aarch64/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM quay.io/pypa/musllinux_1_2_aarch64 WORKDIR /root diff --git a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile index 858ceabe03..d6c427ae3c 100644 --- a/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-musllinux_1_2-x86_64/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM quay.io/pypa/musllinux_1_2_x86_64 AS base WORKDIR /root diff --git a/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile b/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile index 7b4e16f0f4..a44931cc7e 100644 --- a/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM ubuntu:jammy AS base WORKDIR /root diff --git a/tools/docker-images/clp-package/Dockerfile b/tools/docker-images/clp-package/Dockerfile index d3f7c3cf1b..74e9d97907 100644 --- a/tools/docker-images/clp-package/Dockerfile +++ b/tools/docker-images/clp-package/Dockerfile @@ -1,3 +1,5 @@ +# syntax=docker/dockerfile:1 + FROM ubuntu:jammy AS base WORKDIR /root From ffa56d1f3e38b7b7551e3844d93382a257fcf2a2 Mon Sep 17 00:00:00 2001 From: Junhao Liao Date: Fri, 17 Oct 2025 16:02:26 -0400 Subject: [PATCH 3/3] chore(docker): Replace `ADD` with `COPY --link` for more efficient file copying. --- .../docker-images/clp-core-ubuntu-jammy/Dockerfile | 10 +++++----- .../clp-env-base-centos-stream-9/Dockerfile | 2 +- .../docker-images/clp-env-base-ubuntu-jammy/Dockerfile | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile b/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile index 29bc299fc6..bb3be48ee0 100644 --- a/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile +++ b/components/core/tools/docker-images/clp-core-ubuntu-jammy/Dockerfile @@ -16,11 +16,11 @@ RUN apt-get clean \ WORKDIR /clp -ADD ./clg ./ -ADD ./clp ./ -ADD ./clp-s ./ -ADD ./glt ./ -ADD ./make-dictionaries-readable ./ +COPY --link ./clg ./ +COPY --link ./clp ./ +COPY --link ./clp-s ./ +COPY --link ./glt ./ +COPY --link ./make-dictionaries-readable ./ # Flatten the image FROM scratch diff --git a/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile b/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile index dc7b573a15..88d43092ba 100644 --- a/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-centos-stream-9/Dockerfile @@ -5,7 +5,7 @@ FROM dokken/centos-stream-9 AS base WORKDIR /root RUN mkdir -p ./tools/scripts/lib_install -ADD ./tools/scripts/lib_install ./tools/scripts/lib_install +COPY --link ./tools/scripts/lib_install ./tools/scripts/lib_install # Set pipx environment vars so that the pipx scripts install into the global locations without # passing the `--global` flag. diff --git a/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile b/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile index a44931cc7e..bc979e93b2 100644 --- a/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile +++ b/components/core/tools/docker-images/clp-env-base-ubuntu-jammy/Dockerfile @@ -5,7 +5,7 @@ FROM ubuntu:jammy AS base WORKDIR /root RUN mkdir -p ./tools/scripts/lib_install -ADD ./tools/scripts/lib_install ./tools/scripts/lib_install +COPY --link ./tools/scripts/lib_install ./tools/scripts/lib_install # Set pipx environment vars so that the pipx scripts install into the global locations without # passing the `--global` flag.