Skip to content

Commit d5ac7ef

Browse files
committed
ci: dockerfile refactor
Signed-off-by: Vitor Bandeira <[email protected]>
1 parent cc7d500 commit d5ac7ef

File tree

10 files changed

+107
-439
lines changed

10 files changed

+107
-439
lines changed

Dockerfile

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
################################################################################
2+
# Install dependencies for dev #
3+
################################################################################
4+
5+
# https://github.com/moby/moby/issues/38379#issuecomment-448445652
6+
ARG fromImage=ubuntu:24.04
7+
ARG devImage=dev
8+
9+
FROM $fromImage AS dev
10+
11+
ENV DEBIAN_FRONTEND=noninteractive
12+
ENV TZ=America/Los_Angeles
13+
ENV LANG=C.UTF-8
14+
ENV LC_ALL=C.UTF-8
15+
16+
ARG INSTALLER_ARGS=""
17+
18+
COPY etc/DependencyInstaller.sh /tmp/.
19+
RUN <<EOF
20+
set -e
21+
/tmp/DependencyInstaller.sh -ci -base
22+
/tmp/DependencyInstaller.sh -ci -common $INSTALLER_ARGS
23+
if echo "$fromImage" | grep -q "ubuntu"; then
24+
echo "fromImage contains 'ubuntu' — stripping section from libQt5Core.so"
25+
strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so || true
26+
else
27+
echo "Skipping strip command as fromImage does not contain 'ubuntu'"
28+
fi
29+
rm -f /tmp/DependencyInstaller.sh
30+
EOF
31+
32+
################################################################################
33+
# Build OpenROAD from source #
34+
################################################################################
35+
36+
FROM $devImage AS builder
37+
38+
ARG compiler=gcc
39+
ARG numThreads=NotSet
40+
ARG orVersion=NotSet
41+
42+
RUN <<EOF
43+
groupadd user --gid 9000
44+
useradd --create-home --uid 9000 -g user --skel /etc/skel --shell /bin/bash user
45+
EOF
46+
47+
USER user
48+
WORKDIR /OpenROAD
49+
COPY --chown=user:user . .
50+
RUN <<EOF
51+
# enable compiler for RHEL8
52+
if [ -f /opt/rh/gcc-toolset-13/enable ]; then
53+
source /opt/rh/gcc-toolset-13/enable
54+
fi
55+
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DOPENROAD_VERSION=${orVersion}
56+
if [ "$numThreads" = "NotSet" ]; then
57+
numThreads=$(nproc)
58+
fi
59+
cmake --build build -- -j ${numThreads}
60+
EOF
61+
62+
COPY --chmod=775 --chown=user:user etc/docker-entrypoint.sh /usr/local/bin/.
63+
64+
################################################################################
65+
# Final Image #
66+
################################################################################
67+
68+
FROM $devImage AS final
69+
70+
COPY --from=builder /OpenROAD/build/src/openroad /usr/bin/.
71+
ENV OPENROAD_EXE=/usr/bin/openroad
72+
73+
RUN <<EOF
74+
groupadd user --gid 9000
75+
useradd --create-home --uid 9000 -g user --skel /etc/skel --shell /bin/bash user
76+
EOF
77+
78+
USER user
79+
WORKDIR /home/user
80+
81+
ENTRYPOINT [ "openroad" ]

docker/Dockerfile.binary

Lines changed: 0 additions & 17 deletions
This file was deleted.

docker/Dockerfile.builder

Lines changed: 0 additions & 21 deletions
This file was deleted.

docker/Dockerfile.dev

Lines changed: 0 additions & 23 deletions
This file was deleted.

docker/test_wrapper.sh

Lines changed: 0 additions & 26 deletions
This file was deleted.

etc/Build.sh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ cmakeOptions=""
2222
isNinja=no
2323
cleanBefore=no
2424
depsPrefixesFile=""
25-
keepLog=no
2625
compiler=gcc
2726

2827
_help() {
@@ -117,11 +116,11 @@ while [ "$#" -gt 0 ]; do
117116
-dir=* )
118117
buildDir="${1#*=}"
119118
;;
120-
-keep-log )
121-
keepLog=yes
122-
;;
123119
-threads=* )
124-
numThreads="${1#*=}"
120+
temp="${1#*=}"
121+
if [[ "${temp}" != "NotSet" ]]; then
122+
numThreads=${temp}
123+
fi
125124
;;
126125
-deps-prefixes-file=*)
127126
file="${1#-deps-prefixes-file=}"

0 commit comments

Comments
 (0)