Skip to content

Commit b98d2ef

Browse files
committed
Add perf into the build environment
1 parent e4164b1 commit b98d2ef

File tree

1 file changed

+92
-91
lines changed

1 file changed

+92
-91
lines changed

build-tools.Dockerfile

Lines changed: 92 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -38,47 +38,47 @@ RUN echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries && \
3838
COPY build_tools/patches/pgcopydbv017.patch /pgcopydbv017.patch
3939

4040
RUN if [ "${DEBIAN_VERSION}" = "bookworm" ]; then \
41-
set -e && \
42-
apt update && \
43-
apt install -y --no-install-recommends \
44-
ca-certificates wget gpg && \
45-
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg && \
46-
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
47-
apt-get update && \
48-
apt install -y --no-install-recommends \
49-
build-essential \
50-
autotools-dev \
51-
libedit-dev \
52-
libgc-dev \
53-
libpam0g-dev \
54-
libreadline-dev \
55-
libselinux1-dev \
56-
libxslt1-dev \
57-
libssl-dev \
58-
libkrb5-dev \
59-
zlib1g-dev \
60-
liblz4-dev \
61-
libpq5 \
62-
libpq-dev \
63-
libzstd-dev \
64-
postgresql-16 \
65-
postgresql-server-dev-16 \
66-
postgresql-common \
67-
python3-sphinx && \
68-
wget -O /tmp/pgcopydb.tar.gz https://github.com/dimitri/pgcopydb/archive/refs/tags/v0.17.tar.gz && \
69-
mkdir /tmp/pgcopydb && \
70-
tar -xzf /tmp/pgcopydb.tar.gz -C /tmp/pgcopydb --strip-components=1 && \
71-
cd /tmp/pgcopydb && \
72-
patch -p1 < /pgcopydbv017.patch && \
73-
make -s clean && \
74-
make -s -j12 install && \
75-
libpq_path=$(find /lib /usr/lib -name "libpq.so.5" | head -n 1) && \
76-
mkdir -p /pgcopydb/lib && \
77-
cp "$libpq_path" /pgcopydb/lib/; \
41+
set -e && \
42+
apt update && \
43+
apt install -y --no-install-recommends \
44+
ca-certificates wget gpg && \
45+
wget -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg && \
46+
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt bookworm-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
47+
apt-get update && \
48+
apt install -y --no-install-recommends \
49+
build-essential \
50+
autotools-dev \
51+
libedit-dev \
52+
libgc-dev \
53+
libpam0g-dev \
54+
libreadline-dev \
55+
libselinux1-dev \
56+
libxslt1-dev \
57+
libssl-dev \
58+
libkrb5-dev \
59+
zlib1g-dev \
60+
liblz4-dev \
61+
libpq5 \
62+
libpq-dev \
63+
libzstd-dev \
64+
postgresql-16 \
65+
postgresql-server-dev-16 \
66+
postgresql-common \
67+
python3-sphinx && \
68+
wget -O /tmp/pgcopydb.tar.gz https://github.com/dimitri/pgcopydb/archive/refs/tags/v0.17.tar.gz && \
69+
mkdir /tmp/pgcopydb && \
70+
tar -xzf /tmp/pgcopydb.tar.gz -C /tmp/pgcopydb --strip-components=1 && \
71+
cd /tmp/pgcopydb && \
72+
patch -p1 < /pgcopydbv017.patch && \
73+
make -s clean && \
74+
make -s -j12 install && \
75+
libpq_path=$(find /lib /usr/lib -name "libpq.so.5" | head -n 1) && \
76+
mkdir -p /pgcopydb/lib && \
77+
cp "$libpq_path" /pgcopydb/lib/; \
7878
else \
79-
# copy command below will fail if we don't have dummy files, so we create them for other debian versions
80-
mkdir -p /usr/lib/postgresql/16/bin && touch /usr/lib/postgresql/16/bin/pgcopydb && \
81-
mkdir -p mkdir -p /pgcopydb/lib && touch /pgcopydb/lib/libpq.so.5; \
79+
# copy command below will fail if we don't have dummy files, so we create them for other debian versions
80+
mkdir -p /usr/lib/postgresql/16/bin && touch /usr/lib/postgresql/16/bin/pgcopydb && \
81+
mkdir -p mkdir -p /pgcopydb/lib && touch /pgcopydb/lib/libpq.so.5; \
8282
fi
8383

8484
FROM $BASE_IMAGE_SHA AS build_tools
@@ -108,47 +108,48 @@ RUN echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries && \
108108
RUN set -e \
109109
&& apt update \
110110
&& apt install -y \
111-
autoconf \
112-
automake \
113-
bison \
114-
build-essential \
115-
ca-certificates \
116-
cmake \
117-
curl \
118-
flex \
119-
gdb \
120-
git \
121-
gnupg \
122-
gzip \
123-
jq \
124-
jsonnet \
125-
libcurl4-openssl-dev \
126-
libbz2-dev \
127-
libffi-dev \
128-
liblzma-dev \
129-
libncurses5-dev \
130-
libncursesw5-dev \
131-
libreadline-dev \
132-
libseccomp-dev \
133-
libsqlite3-dev \
134-
libssl-dev \
135-
$([[ "${DEBIAN_VERSION}" = "bullseye" ]] && echo libstdc++-10-dev || echo libstdc++-11-dev) \
136-
libtool \
137-
libxml2-dev \
138-
libxmlsec1-dev \
139-
libxxhash-dev \
140-
lsof \
141-
make \
142-
netcat-openbsd \
143-
net-tools \
144-
openssh-client \
145-
parallel \
146-
pkg-config \
147-
unzip \
148-
wget \
149-
xz-utils \
150-
zlib1g-dev \
151-
zstd \
111+
autoconf \
112+
automake \
113+
bison \
114+
build-essential \
115+
ca-certificates \
116+
cmake \
117+
curl \
118+
flex \
119+
gdb \
120+
git \
121+
gnupg \
122+
gzip \
123+
jq \
124+
jsonnet \
125+
libcurl4-openssl-dev \
126+
libbz2-dev \
127+
libffi-dev \
128+
liblzma-dev \
129+
libncurses5-dev \
130+
libncursesw5-dev \
131+
libreadline-dev \
132+
libseccomp-dev \
133+
libsqlite3-dev \
134+
libssl-dev \
135+
$([[ "${DEBIAN_VERSION}" = "bullseye" ]] && echo libstdc++-10-dev || echo libstdc++-11-dev) \
136+
libtool \
137+
libxml2-dev \
138+
libxmlsec1-dev \
139+
libxxhash-dev \
140+
lsof \
141+
make \
142+
netcat-openbsd \
143+
net-tools \
144+
openssh-client \
145+
parallel \
146+
pkg-config \
147+
unzip \
148+
wget \
149+
xz-utils \
150+
zlib1g-dev \
151+
zstd \
152+
linux-perf \
152153
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
153154

154155
# sql_exporter
@@ -224,10 +225,10 @@ RUN set -e \
224225
# And patches from us:
225226
# - Generates json file with code coverage summary (https://github.com/neondatabase/lcov/commit/426e7e7a22f669da54278e9b55e6d8caabd00af0.tar.gz)
226227
RUN set +o pipefail && \
227-
for package in Capture::Tiny DateTime Devel::Cover Digest::MD5 File::Spec JSON::XS Memory::Process Time::HiRes JSON; do \
228-
yes | perl -MCPAN -e "CPAN::Shell->notest('install', '$package')";\
229-
done && \
230-
set -o pipefail
228+
for package in Capture::Tiny DateTime Devel::Cover Digest::MD5 File::Spec JSON::XS Memory::Process Time::HiRes JSON; do \
229+
yes | perl -MCPAN -e "CPAN::Shell->notest('install', '$package')";\
230+
done && \
231+
set -o pipefail
231232
# Split into separate step to debug flaky failures here
232233
RUN wget https://github.com/neondatabase/lcov/archive/426e7e7a22f669da54278e9b55e6d8caabd00af0.tar.gz -O lcov.tar.gz \
233234
&& ls -laht lcov.tar.gz && sha256sum lcov.tar.gz \
@@ -303,9 +304,9 @@ ARG CARGO_NEXTEST_VERSION=0.9.94
303304
ARG CARGO_CHEF_VERSION=0.1.71
304305
ARG CARGO_DIESEL_CLI_VERSION=2.2.9
305306
RUN curl -sSO https://static.rust-lang.org/rustup/dist/$(uname -m)-unknown-linux-gnu/rustup-init && whoami && \
306-
chmod +x rustup-init && \
307-
./rustup-init -y --default-toolchain ${RUSTC_VERSION} && \
308-
rm rustup-init && \
307+
chmod +x rustup-init && \
308+
./rustup-init -y --default-toolchain ${RUSTC_VERSION} && \
309+
rm rustup-init && \
309310
export PATH="$HOME/.cargo/bin:$PATH" && \
310311
. "$HOME/.cargo/env" && \
311312
cargo --version && rustup --version && \
@@ -317,7 +318,7 @@ RUN curl -sSO https://static.rust-lang.org/rustup/dist/$(uname -m)-unknown-linux
317318
cargo install cargo-nextest --version ${CARGO_NEXTEST_VERSION} --locked && \
318319
cargo install cargo-chef --version ${CARGO_CHEF_VERSION} --locked && \
319320
cargo install diesel_cli --version ${CARGO_DIESEL_CLI_VERSION} --locked \
320-
--features postgres-bundled --no-default-features && \
321+
--features postgres-bundled --no-default-features && \
321322
rm -rf /home/nonroot/.cargo/registry && \
322323
rm -rf /home/nonroot/.cargo/git
323324

@@ -332,9 +333,9 @@ RUN whoami \
332333

333334
RUN if [ "${DEBIAN_VERSION}" = "bookworm" ]; then \
334335
LD_LIBRARY_PATH=/pgcopydb/lib /pgcopydb/bin/pgcopydb --version; \
335-
else \
336+
else \
336337
echo "pgcopydb is not available for ${DEBIAN_VERSION}"; \
337-
fi
338+
fi
338339

339340
# Set following flag to check in Makefile if its running in Docker
340341
RUN touch /home/nonroot/.docker_build

0 commit comments

Comments
 (0)