Skip to content

Commit 98d7fc8

Browse files
authored
use multistage build to setcap on binary in dockerfile for ydbd_slice (#3857)
1 parent 968019f commit 98d7fc8

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed
Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
1-
FROM cr.yandex/mirror/ubuntu:focal
1+
# syntax=docker/dockerfile:1
2+
FROM cr.yandex/mirror/ubuntu:focal as base
23

3-
ARG ARC_COMMIT_ID
4-
LABEL arc_commit_id=$ARC_COMMIT_ID
5-
6-
RUN \
4+
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
75
apt-get -yqq update && \
86
apt-get -yqq install libcap2-bin dnsutils telnet netcat-openbsd iputils-ping gdb atop strace curl linux-tools-generic && \
97
apt-get -yqq clean all && \
108
rm -rf /var/lib/apt/lists/* && \
119
groupadd -r ydb && \
1210
useradd --no-log-init -r -m -g ydb -G disk ydb
1311

14-
WORKDIR /opt/ydb/bin
15-
16-
COPY ydb ./ydb
12+
FROM base as ydbd-setcap
1713

18-
COPY libiconv.so /lib/libiconv.so
19-
COPY liblibidn-dynamic.so /lib/liblibidn-dynamic.so
20-
COPY liblibaio-dynamic.so /lib/liblibaio-dynamic.so
14+
COPY --link ydbd /ydbd
15+
RUN /sbin/setcap CAP_SYS_RAWIO=ep /ydbd
2116

22-
COPY ydbd ./ydbd
17+
FROM base
2318

24-
RUN /sbin/setcap CAP_SYS_RAWIO=ep /opt/ydb/bin/ydbd
19+
ARG ARC_COMMIT_ID
20+
LABEL arc_commit_id=$ARC_COMMIT_ID
2521

22+
WORKDIR /opt/ydb/bin
23+
COPY --chmod=0755 --chown=ydb:ydb --link ydb /opt/ydb/bin/ydb
24+
COPY --chmod=0644 --link libiconv.so /lib/libiconv.so
25+
COPY --chmod=0644 --link liblibidn-dynamic.so /lib/liblibidn-dynamic.so
26+
COPY --chmod=0644 --link liblibaio-dynamic.so /lib/liblibaio-dynamic.so
27+
COPY --chmod=0755 --chown=ydb:ydb --link --from=ydbd-setcap /ydbd /opt/ydb/bin/ydbd
2628
USER ydb

0 commit comments

Comments
 (0)