From dee9933f9e98a8b222f1f040fbcf49b0b07f62ea Mon Sep 17 00:00:00 2001 From: Illia Vysochyn Date: Mon, 8 Jul 2024 18:19:30 +0200 Subject: [PATCH] [#62157] WIP: docker: Dockerfile.builder: Optimize dockerfile Signed-off-by: Illia Vysochyn --- docker/Dockerfile.builder | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/docker/Dockerfile.builder b/docker/Dockerfile.builder index ee21b22356..7f8ef564dc 100644 --- a/docker/Dockerfile.builder +++ b/docker/Dockerfile.builder @@ -1,27 +1,29 @@ +# syntax=docker/dockerfile:1.7-labs + # Target with dependencies to build all flow tools from their sources. # i.e., "./build_openroad.sh --local" from inside a docker container # NOTE: don't use this file directly unless you know what you are doing, # instead use etc/DockerHelper.sh -ARG fromImage=openroad/flow-ubuntu22.04-dev:latest - -FROM $fromImage AS openroad-builder-base +ARG fromImage=openroad/flow-ubuntu22.04-dev:latest ARG numThreads=$(nproc) -COPY . /OpenROAD-flow-scripts -WORKDIR /OpenROAD-flow-scripts - -RUN ./build_openroad.sh --no_init --local --threads ${numThreads} - +# TODO: Prepare long-term dependencies here FROM $fromImage AS openroad-flow-scripts-base -COPY . /OpenROAD-flow-scripts +WORKDIR /OpenROAD-flow-scripts +COPY --exclude=.git --exclude=tools/ . /OpenROAD-flow-scripts -RUN rm -rf /OpenROAD-flow-scripts/tools /OpenROAD-flow-scripts/.git +# TODO: Copy only build dependencies +FROM openroad-flow-scripts-base AS openroad-builder-base +COPY --exclude=.git . /OpenROAD-flow-scripts +RUN ./build_openroad.sh --no_init --local --threads ${numThreads} +# TODO: Copy remaining files from the repository +FROM openroad-flow-scripts-base AS openroad-flow-scripts-merged COPY --from=openroad-builder-base /OpenROAD-flow-scripts/tools/install /OpenROAD-flow-scripts/tools/install FROM $fromImage -COPY --from=openroad-flow-scripts-base /OpenROAD-flow-scripts /OpenROAD-flow-scripts +COPY --from=openroad-flow-scripts-merged /OpenROAD-flow-scripts /OpenROAD-flow-scripts WORKDIR /OpenROAD-flow-scripts