From 959ee6efc3b11c9d46ce32edd2457cc041b5e29f Mon Sep 17 00:00:00 2001 From: Jack Luar Date: Fri, 23 May 2025 19:23:32 +0000 Subject: [PATCH] add Dockerfile Signed-off-by: Jack Luar --- tools/AutoTuner/.dockerignore | 8 ++++++++ tools/AutoTuner/.gitignore | 3 +++ tools/AutoTuner/Dockerfile | 25 +++++++++++++++++++++++++ tools/AutoTuner/Makefile | 28 ++++++++++++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 tools/AutoTuner/.dockerignore create mode 100644 tools/AutoTuner/Dockerfile create mode 100644 tools/AutoTuner/Makefile diff --git a/tools/AutoTuner/.dockerignore b/tools/AutoTuner/.dockerignore new file mode 100644 index 0000000000..f3a6215f3a --- /dev/null +++ b/tools/AutoTuner/.dockerignore @@ -0,0 +1,8 @@ +**/*.venv +**/__pycache__ +**/*.egg-info +**/*.env +**/*test +**/*.json +autotuner_env +*.log diff --git a/tools/AutoTuner/.gitignore b/tools/AutoTuner/.gitignore index d7693dd9c4..f812b75d02 100644 --- a/tools/AutoTuner/.gitignore +++ b/tools/AutoTuner/.gitignore @@ -10,3 +10,6 @@ __pycache__/ # Autotuner env autotuner_env .env + +# Log files +docker-build.log diff --git a/tools/AutoTuner/Dockerfile b/tools/AutoTuner/Dockerfile new file mode 100644 index 0000000000..e6ff424234 --- /dev/null +++ b/tools/AutoTuner/Dockerfile @@ -0,0 +1,25 @@ +ARG BASE_IMAGE +FROM ${BASE_IMAGE:-openroad/orfs:latest} + +# Set workdir +WORKDIR /OpenROAD-flow-scripts/tools/AutoTuner + +# Replace pre-existing AT files with local copy +RUN rm -rf /OpenROAD-flow-scripts/tools/AutoTuner + +# Create venv +RUN python3 -m venv .venv +ENV PATH="/OpenROAD-flow-scripts/tools/AutoTuner/.venv:${PATH}" + +# Copy only requirements first for better caching of pip install +COPY requirements.txt . + +# Upgrade pip and install Python dependencies +RUN pip3 install --no-cache-dir --upgrade pip && \ + pip3 install --no-cache-dir -r requirements.txt + +# Copy full source after installing dependencies +COPY . . + +# Install package in editable mode +RUN pip3 install --no-cache-dir -e . diff --git a/tools/AutoTuner/Makefile b/tools/AutoTuner/Makefile new file mode 100644 index 0000000000..447f832c3b --- /dev/null +++ b/tools/AutoTuner/Makefile @@ -0,0 +1,28 @@ +include .env +export + +BASE_TAG=$(shell cd ../../ && ./etc/DockerTag.sh -dev) +ORFS_IMAGE := openroad/orfs:latest +ORFS_AUTOTUNER_IMAGE := orfs-autotuner + +.PHONY: clean +clean: + @echo "Cleaning up old images" + @docker rmi ${ORFS_AUTOTUNER_IMAGE}:latest || true + +.PHONY: docker +docker: clean + @echo "Building docker image..." + @docker build -t ${ORFS_AUTOTUNER_IMAGE}:latest -f Dockerfile --build-arg BASE_IMAGE=${ORFS_IMAGE} . | tee docker-build.log + @docker tag ${ORFS_AUTOTUNER_IMAGE}:latest ${ORFS_AUTOTUNER_IMAGE}:$(BASE_TAG) + +.PHONY: upload +upload: docker + @echo "Uploading docker image..." + @docker login -u $(DOCKERHUB_USERNAME) -p $(DOCKERHUB_PASSWORD) + @echo "Base image: $(BASE_TAG)" + @docker tag ${ORFS_AUTOTUNER_IMAGE}:latest ${DOCKERHUB_USERNAME}/${ORFS_AUTOTUNER_IMAGE}:$(BASE_TAG) + @docker tag ${ORFS_AUTOTUNER_IMAGE}:latest ${DOCKERHUB_USERNAME}/${ORFS_AUTOTUNER_IMAGE}:latest + @docker push ${DOCKERHUB_USERNAME}/${ORFS_AUTOTUNER_IMAGE}:$(BASE_TAG) + @docker push ${DOCKERHUB_USERNAME}/${ORFS_AUTOTUNER_IMAGE}:latest + @docker logout