Skip to content

Commit 5218c15

Browse files
authored
ROX-28460: New option to build a Builder image with debug symbols and sources. (#2056)
1 parent 6d61b33 commit 5218c15

19 files changed

+32
-18
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ container-dockerfile-dev:
2525
builder:
2626
ifneq ($(BUILD_BUILDER_IMAGE), false)
2727
docker buildx build --load --platform ${PLATFORM} \
28+
--build-arg COLLECTOR_BUILDER_DEBUG=$(COLLECTOR_BUILDER_DEBUG) \
2829
-t quay.io/stackrox-io/collector-builder:$(COLLECTOR_BUILDER_TAG) \
2930
-f "$(CURDIR)/builder/Dockerfile" \
3031
"$(CURDIR)/builder"
31-
else
32+
else ifeq ($(COLLECTOR_BUILDER_DEBUG),)
3233
docker pull --platform ${PLATFORM} \
3334
quay.io/stackrox-io/collector-builder:$(COLLECTOR_BUILDER_TAG)
3435
endif

Makefile-constants.mk

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ ifeq ($(COLLECTOR_BUILDER_TAG),)
22
COLLECTOR_BUILDER_TAG=master
33
endif
44

5+
ifneq ($(COLLECTOR_BUILDER_DEBUG),)
6+
COLLECTOR_BUILDER_TAG:=$(COLLECTOR_BUILDER_TAG)-debug
7+
endif
8+
59
ifeq ($(COLLECTOR_TAG),)
610
COLLECTOR_TAG=$(shell git describe --tags --abbrev=10 --dirty)
711
endif

builder/Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
FROM quay.io/centos/centos:stream9
22

33
ARG BUILD_DIR=/install-tmp
4+
ARG COLLECTOR_BUILDER_DEBUG
45

56
USER root
67

@@ -53,9 +54,8 @@ WORKDIR ${BUILD_DIR}
5354
COPY install builder/install
5455
COPY third_party third_party
5556

56-
RUN "builder/install/install-dependencies.sh" && \
57-
rm -rf ${BUILD_DIR} && \
58-
echo -e '/usr/local/lib\n/usr/local/lib64' > /etc/ld.so.conf.d/usrlocallib.conf && ldconfig
57+
RUN "builder/install/install-dependencies.sh" && if [ -z "${COLLECTOR_BUILDER_DEBUG}" ]; then rm -rf ${BUILD_DIR}; fi
58+
RUN echo -e '/usr/local/lib\n/usr/local/lib64' > /etc/ld.so.conf.d/usrlocallib.conf && ldconfig
5959

6060
# Set up ssh for remote development with IDE
6161
RUN ssh-keygen -A \

builder/install/05-abseil.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cp LICENSE "${LICENSE_DIR}/Abseil-${ABSEIL_VERSION}"
99
mkdir cmake-build
1010
cd cmake-build
1111
cmake .. \
12-
-DCMAKE_BUILD_TYPE=Release \
12+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1313
-DCMAKE_INSTALL_PREFIX=/usr/local \
1414
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1515
-DCMAKE_CXX_STANDARD=17 \

builder/install/10-gperftools.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,6 @@ cd third_party/gperftools
66
cp COPYING "${LICENSE_DIR}/gperftools-${GPERFTOOLS_VERSION}"
77

88
./autogen.sh
9-
./configure --enable-shared=no --prefix=/usr/local
9+
CXXFLAGS=${EXTRA_CFLAGS_DEBUG} CFLAGS=${EXTRA_CFLAGS_DEBUG} ./configure --enable-shared=no --prefix=/usr/local
1010
make ${NPROCS:+-j ${NPROCS}}
1111
make install

builder/install/10-protobuf.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cp LICENSE "${LICENSE_DIR}/protobuf-${PROTOBUF_VERSION}"
77

88
mkdir -p cmake-build && cd cmake-build
99
cmake -S ../ \
10-
-DCMAKE_BUILD_TYPE=Release \
10+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1111
-DCMAKE_INSTALL_PREFIX=/usr/local \
1212
-DBUILD_SHARED_LIBS=OFF \
1313
-Dprotobuf_BUILD_TESTS=OFF \

builder/install/10-yaml-cpp.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ cd third_party/yaml-cpp
66
cp LICENSE "${LICENSE_DIR}/yaml-cpp-${YAMLCPP_VERSION}"
77

88
cmake -B build/ \
9+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
910
-DYAML_CPP_BUILD_CONTRIB=OFF \
1011
-DYAML_CPP_BUILD_TOOLS=OFF \
1112
-DYAML_BUILD_SHARED_LIBS=OFF \

builder/install/20-googletest.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ cd third_party/googletest
66
cp LICENSE "${LICENSE_DIR}/googletest-${GOOGLETEST_REVISION}"
77
mkdir cmake-build
88
cd cmake-build
9-
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
9+
cmake -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" -DCMAKE_INSTALL_PREFIX=/usr/local ..
1010
cmake --build . --target install ${NPROCS:+-j ${NPROCS}}

builder/install/30-cares.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ cp LICENSE.md "${LICENSE_DIR}/c-ares-${CARES_VERSION}"
1212

1313
mkdir cmake-build
1414
cd cmake-build
15-
cmake -DCMAKE_BUILD_TYPE=Release \
15+
cmake -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1616
-DCARES_INSTALL=ON \
1717
-DCMAKE_INSTALL_PREFIX=/usr/local \
1818
-DCARES_SHARED=OFF \

builder/install/35-re2.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ cp LICENSE "${LICENSE_DIR}/re2-${RE2_VERSION}"
88

99
mkdir cmake-build && cd cmake-build
1010
cmake .. \
11-
-DCMAKE_BUILD_TYPE=Release \
11+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1212
-DCMAKE_INSTALL_PREFIX=/usr/local \
1313
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
1414
-DBUILD_SHARED_LIBS=OFF

builder/install/40-civetweb.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ cp LICENSE.md "${LICENSE_DIR}/CivetWeb-${CIVETWEB_VERSION}"
88

99
mkdir cmake-build
1010
cd cmake-build
11-
cmake -DCMAKE_BUILD_TYPE=Release \
11+
cmake -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1212
-DCMAKE_INSTALL_PREFIX=/usr/local \
1313
-DCIVETWEB_ENABLE_CXX=ON \
1414
-DBUILD_SHARED_LIBS:BOOL=NO \

builder/install/40-grpc.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ cmake \
2323
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
2424
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \
2525
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
26-
-DCMAKE_BUILD_TYPE=Release \
26+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
2727
-DgRPC_DOWNLOAD_ARCHIVES=OFF \
2828
-DgRPC_INSTALL=ON \
2929
-DCMAKE_INSTALL_PREFIX=/usr/local \

builder/install/50-libb64.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ cd third_party/libb64
66

77
cat AUTHORS LICENSE > "${LICENSE_DIR}/libb64-${B64_VERSION}"
88

9-
CFLAGS=-fPIC make all_base64
9+
CFLAGS="-fPIC ${EXTRA_CFLAGS_DEBUG}" make all_base64
1010

1111
cp src/libb64.a /usr/local/lib/
1212
cp -r include/b64 /usr/local/include/

builder/install/50-prometheus.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ cat LICENSE > "${LICENSE_DIR}/prometheus-${PROMETHEUS_CPP_REVISION}"
88

99
mkdir cmake-build
1010
cd cmake-build
11-
cmake -DENABLE_TESTING=OFF -DUSE_THIRDPARTY_LIBRARIES=NO -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE=Release ../
11+
cmake -DENABLE_TESTING=OFF -DUSE_THIRDPARTY_LIBRARIES=NO -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" ../
1212
cmake --build . --target install ${NPROCS:+-j ${NPROCS}}

builder/install/60-jsoncpp.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ cp LICENSE "${LICENSE_DIR}/jsoncpp-${JSONCPP_REVISION}"
99
mkdir cmake-build
1010
cd cmake-build
1111
cmake -DCMAKE_INSTALL_PREFIX=/usr/local \
12-
-DCMAKE_BUILD_TYPE=Release \
12+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1313
-DCMAKE_CXX_FLAGS=-fPIC \
1414
-DJSONCPP_WITH_TESTS=OFF \
1515
-DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF \

builder/install/60-tbb.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ fi
1010
cd third_party/tbb
1111
cp LICENSE.txt "${LICENSE_DIR}/tbb-${TBB_VERSION}"
1212
cmake -B cmake-build -S . \
13-
-DCMAKE_BUILD_TYPE=Release \
13+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1414
-DCMAKE_INSTALL_PREFIX=/usr/local \
1515
-DBUILD_SHARED_LIBS=OFF \
1616
-DTBB_TEST=OFF \

builder/install/70-valijson.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cp LICENSE "${LICENSE_DIR}/valijson-${VALIJSON_VERSION}"
77

88
mkdir cmake-build && cd cmake-build
99
cmake \
10-
-DCMAKE_BUILD_TYPE=Release \
10+
-DCMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" \
1111
-DCMAKE_INSTALL_PREFIX=/usr/local \
1212
-Dvalijson_BUILD_TESTS=OFF \
1313
..

builder/install/80-libbpf.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ cd third_party/libbpf
77
cp LICENSE "${LICENSE_DIR}/libbpf-${LIBBPF_VERSION}"
88

99
mkdir src/build
10-
make BUILD_STATIC_ONLY=y OBJDIR=build "LDFLAGS=-Wl,-Bstatic" "CFLAGS=-fPIC" \
10+
make BUILD_STATIC_ONLY=y OBJDIR=build "LDFLAGS=-Wl,-Bstatic" "CFLAGS=-fPIC ${EXTRA_CFLAGS_DEBUG}" \
1111
${NPROCS:+-j ${NPROCS}} -C src install install_uapi_headers

builder/install/install-dependencies.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ mkdir -p "${LICENSE_DIR}"
99
export NPROCS
1010
NPROCS="${NPROCS:-$(nproc)}"
1111

12+
export CMAKE_BUILD_TYPE
13+
CMAKE_BUILD_TYPE=Release
14+
export EXTRA_CFLAGS_DEBUG
15+
if [ -n "${COLLECTOR_BUILDER_DEBUG}" ]; then
16+
CMAKE_BUILD_TYPE=RelWithDebInfo
17+
EXTRA_CFLAGS_DEBUG=-g
18+
fi
19+
1220
# shellcheck source=SCRIPTDIR/versions.sh
1321
source builder/install/versions.sh
1422
for f in builder/install/[0-9][0-9]-*.sh; do

0 commit comments

Comments
 (0)