11# syntax=docker/dockerfile:1.4
22ARG BASE_IMAGE="cr.yandex/mirror/ubuntu"
33ARG BASE_IMAGE_TAG="focal"
4- ARG BREAKPAD_IMAGE ="cr.yandex/crp2lrlsrs36odlvd8dv/breakpad_init"
5- ARG BREAKPAD_IMAGE_TAG ="v2022.07.12"
4+ ARG BREAKPAD_INIT_IMAGE ="cr.yandex/crp2lrlsrs36odlvd8dv/breakpad_init"
5+ ARG BREAKPAD_INIT_IMAGE_TAG ="v2022.07.12"
66
77# ##
88# Base image with required deb packages
@@ -12,15 +12,23 @@ RUN groupadd -r ydb && useradd --no-log-init -r -m -g ydb -G disk ydb && \
1212 apt-get -yqq update && \
1313 apt-get -yqq install --no-install-recommends libcap2-bin ca-certificates && \
1414 apt-get clean && rm -rf /var/lib/apt/lists/*
15+ # release information
16+ COPY --chmod=0644 /AUTHORS /AUTHORS
17+ COPY --chmod=0644 /LICENSE /LICENSE
18+ COPY --chmod=0644 /README.md /README.md
19+ # dynamic libraries
20+ COPY --chmod=0644 /libiconv.so /lib/libiconv.so
21+ COPY --chmod=0644 /liblibidn-dynamic.so /lib/liblibidn-dynamic.so
22+ COPY --chmod=0644 /liblibaio-dynamic.so /lib/liblibaio-dynamic.so
1523
1624# ##
1725# Base image with google brekpad assets
1826# ##
19- FROM ${BREAKPAD_IMAGE }:${BREAKPAD_IMAGE_TAG } AS breakpad_init
27+ FROM ${BREAKPAD_INIT_IMAGE }:${BREAKPAD_INIT_IMAGE_TAG } AS breakpad_init
2028FROM base AS base-breakpad
2129RUN \
2230 apt-get -yqq update && \
23- apt-get -yqq install --no-install-recommends binutils gdb strace linux-tools-generic \
31+ apt-get -yqq install --no-install-recommends binutils gdb strace linux-tools-generic && \
2432 apt-get clean && rm -rf /var/lib/apt/lists/*
2533ENV LD_PRELOAD=libbreakpad_init.so
2634ENV BREAKPAD_MINIDUMPS_PATH=/opt/ydb/volumes/coredumps
@@ -32,30 +40,6 @@ COPY --chmod=0755 --from=breakpad_init /usr/bin/minidump-2-core /usr/bin/minidum
3240# minidump callback script
3341COPY --chmod=0755 --chown=ydb /minidump_script.py /opt/ydb/bin/minidump_script.py
3442
35- # ##
36- # Base image with debug packages
37- # ##
38- FROM base-breakpad AS base-debug
39- RUN \
40- apt-get -yqq update && \
41- apt-get -yqq --no-install-recommends dnsutils telnet netcat-openbsd iputils-ping curl && \
42- apt-get clean all && rm -rf /var/lib/apt/lists/*
43-
44- FROM scratch AS license
45- # release information
46- COPY --chmod=0644 /AUTHORS /AUTHORS
47- COPY --chmod=0644 /LICENSE /LICENSE
48- COPY --chmod=0644 /README.md /README.md
49-
50- FROM scratch AS dynamic-libs
51- # dynamic libraries
52- COPY --chmod=0644 /libiconv.so /lib/libiconv.so
53- COPY --chmod=0644 /liblibidn-dynamic.so /lib/liblibidn-dynamic.so
54- COPY --chmod=0644 /liblibaio-dynamic.so /lib/liblibaio-dynamic.so
55-
56- FROM base AS ydb-binary
57- COPY --chmod=0755 --chown=ydb /ydb /opt/ydb/bin/ydb
58-
5943FROM base AS ydbd-setcap
6044COPY --chmod=0755 --chown=ydb /ydbd /opt/ydb/bin/ydbd
6145# workaround for decrease image size
@@ -65,57 +49,31 @@ RUN /sbin/setcap CAP_SYS_RAWIO=ep /opt/ydb/bin/ydbd
6549# Release image
6650# ##
6751FROM base AS release
68- # release information
69- COPY --link --from=license /AUTHORS /AUTHORS
70- COPY --link --from=license /LICENSE /LICENSE
71- COPY --link --from=license /README.md /README.md
72- # dynamic libraries
73- COPY --link --from=dynamic-libs /lib/libiconv.so /lib/libiconv.so
74- COPY --link --from=dynamic-libs /lib/liblibidn-dynamic.so /lib/liblibidn-dynamic.so
75- COPY --link --from=dynamic-libs /lib/liblibaio-dynamic.so /lib/liblibaio-dynamic.so
7652# ydb binaries
77- COPY --link --from =ydb-binary /opt/ydb/bin /ydb /opt/ydb/bin/ydb
53+ COPY --chmod=0755 --chown =ydb /ydb /opt/ydb/bin/ydb
7854COPY --link --from=ydbd-setcap /opt/ydb/bin/ydbd /opt/ydb/bin/ydbd
79-
8055WORKDIR /opt/ydb/bin
8156USER ydb
8257
8358# ##
8459# Breakpad Image
8560# ##
8661FROM base-breakpad AS breakpad
87- # release information
88- COPY --link --from=license /AUTHORS /AUTHORS
89- COPY --link --from=license /LICENSE /LICENSE
90- COPY --link --from=license /README.md /README.md
91- # dynamic libraries
92- COPY --link --from=dynamic-libs /lib/libiconv.so /lib/libiconv.so
93- COPY --link --from=dynamic-libs /lib/liblibidn-dynamic.so /lib/liblibidn-dynamic.so
94- COPY --link --from=dynamic-libs /lib/liblibaio-dynamic.so /lib/liblibaio-dynamic.so
9562# ydb binaries
96- COPY --link --from =ydb-binary /opt/ydb/bin /ydb /opt/ydb/bin/ydb
63+ COPY --chmod=0755 --chown =ydb /ydb /opt/ydb/bin/ydb
9764COPY --link --from=ydbd-setcap /opt/ydb/bin/ydbd /opt/ydb/bin/ydbd
98-
9965WORKDIR /opt/ydb/bin
10066USER ydb
10167
10268# ##
10369# Debug Image
10470# ##
105- FROM base-debug AS debug
106- # release information
107- COPY --link --from=license /AUTHORS /AUTHORS
108- COPY --link --from=license /LICENSE /LICENSE
109- COPY --link --from=license /README.md /README.md
110- # dynamic libraries
111- COPY --link --from=dynamic-libs /lib/libiconv.so /lib/libiconv.so
112- COPY --link --from=dynamic-libs /lib/liblibidn-dynamic.so /lib/liblibidn-dynamic.so
113- COPY --link --from=dynamic-libs /lib/liblibaio-dynamic.so /lib/liblibaio-dynamic.so
114- # ydb binaries
115- COPY --link --from=ydb-binary /opt/ydb/bin/ydb /opt/ydb/bin/ydb
116- COPY --link --from=ydbd-setcap /opt/ydb/bin/ydbd /opt/ydb/bin/ydbd
71+ FROM breakpad AS debug
72+ USER root
73+ RUN \
74+ apt-get -yqq update && \
75+ apt-get -yqq install --no-install-recommends dnsutils telnet netcat-openbsd iputils-ping curl && \
76+ apt-get clean && rm -rf /var/lib/apt/lists/*
11777# debug symbols
11878COPY --chmod=0644 --chown=ydb /ydbd.debug /opt/ydb/bin/ydbd.debug
119-
120- WORKDIR /opt/ydb/bin
12179USER ydb
0 commit comments