@@ -38,47 +38,47 @@ RUN echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries && \
38
38
COPY build_tools/patches/pgcopydbv017.patch /pgcopydbv017.patch
39
39
40
40
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/; \
78
78
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; \
82
82
fi
83
83
84
84
FROM $BASE_IMAGE_SHA AS build_tools
@@ -108,47 +108,48 @@ RUN echo 'Acquire::Retries "5";' > /etc/apt/apt.conf.d/80-retries && \
108
108
RUN set -e \
109
109
&& apt update \
110
110
&& 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 \
152
153
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
153
154
154
155
# sql_exporter
@@ -224,10 +225,10 @@ RUN set -e \
224
225
# And patches from us:
225
226
# - Generates json file with code coverage summary (https://github.com/neondatabase/lcov/commit/426e7e7a22f669da54278e9b55e6d8caabd00af0.tar.gz)
226
227
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
231
232
# Split into separate step to debug flaky failures here
232
233
RUN wget https://github.com/neondatabase/lcov/archive/426e7e7a22f669da54278e9b55e6d8caabd00af0.tar.gz -O lcov.tar.gz \
233
234
&& ls -laht lcov.tar.gz && sha256sum lcov.tar.gz \
@@ -303,9 +304,9 @@ ARG CARGO_NEXTEST_VERSION=0.9.94
303
304
ARG CARGO_CHEF_VERSION=0.1.71
304
305
ARG CARGO_DIESEL_CLI_VERSION=2.2.9
305
306
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 && \
309
310
export PATH="$HOME/.cargo/bin:$PATH" && \
310
311
. "$HOME/.cargo/env" && \
311
312
cargo --version && rustup --version && \
@@ -317,7 +318,7 @@ RUN curl -sSO https://static.rust-lang.org/rustup/dist/$(uname -m)-unknown-linux
317
318
cargo install cargo-nextest --version ${CARGO_NEXTEST_VERSION} --locked && \
318
319
cargo install cargo-chef --version ${CARGO_CHEF_VERSION} --locked && \
319
320
cargo install diesel_cli --version ${CARGO_DIESEL_CLI_VERSION} --locked \
320
- --features postgres-bundled --no-default-features && \
321
+ --features postgres-bundled --no-default-features && \
321
322
rm -rf /home/nonroot/.cargo/registry && \
322
323
rm -rf /home/nonroot/.cargo/git
323
324
@@ -332,9 +333,9 @@ RUN whoami \
332
333
333
334
RUN if [ "${DEBIAN_VERSION}" = "bookworm" ]; then \
334
335
LD_LIBRARY_PATH=/pgcopydb/lib /pgcopydb/bin/pgcopydb --version; \
335
- else \
336
+ else \
336
337
echo "pgcopydb is not available for ${DEBIAN_VERSION}" ; \
337
- fi
338
+ fi
338
339
339
340
# Set following flag to check in Makefile if its running in Docker
340
341
RUN touch /home/nonroot/.docker_build
0 commit comments