Skip to content

Commit 0a0543f

Browse files
committed
revert changes
1 parent 89648da commit 0a0543f

File tree

5 files changed

+186
-85
lines changed

5 files changed

+186
-85
lines changed

ydb/deploy/docker/Dockerfile

Lines changed: 20 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# syntax=docker/dockerfile:1.4
22
ARG BASE_IMAGE="cr.yandex/mirror/ubuntu"
33
ARG 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
2028
FROM base AS base-breakpad
2129
RUN \
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/*
2533
ENV LD_PRELOAD=libbreakpad_init.so
2634
ENV 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
3341
COPY --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-
5943
FROM base AS ydbd-setcap
6044
COPY --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
###
6751
FROM 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
7854
COPY --link --from=ydbd-setcap /opt/ydb/bin/ydbd /opt/ydb/bin/ydbd
79-
8055
WORKDIR /opt/ydb/bin
8156
USER ydb
8257

8358
###
8459
# Breakpad Image
8560
###
8661
FROM 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
9764
COPY --link --from=ydbd-setcap /opt/ydb/bin/ydbd /opt/ydb/bin/ydbd
98-
9965
WORKDIR /opt/ydb/bin
10066
USER 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
11878
COPY --chmod=0644 --chown=ydb /ydbd.debug /opt/ydb/bin/ydbd.debug
119-
120-
WORKDIR /opt/ydb/bin
12179
USER ydb

ydb/deploy/docker/README.md

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,58 @@
22

33
## Base image
44

5-
Base layer is official `ubuntu:20.04` docker image with packages:
5+
Base image is official `ubuntu:focal` with installed packages:
66
- libcap2-bin (for setcap to binaries)
77
- ca-certificates (for working with CA bundle)
88

9+
Also base image included `LICENSE`, `AUTHORS` and `README.md` files from root of repository
10+
and dynamic cpp libraries `libiconv`, `liblibidn` and `libaio`.
11+
12+
### Base breakpad image
13+
14+
Extend base image with:
15+
- additional packages to collect and manage minidump format (binutils, gdb, strace, linux-tools-generic)
16+
- dynamic library `libbreakpad_init.so` from breakpad_init image (ydb/deploy/breakpad_init)
17+
- environment variable `LD_PRELOAD` for loading breakpad library on process start
18+
- environment variables `BREAKPAD_MINIDUMPS_PATH` and `BREAKPAD_MINIDUMPS_SCRIPT` to setup breakpad
19+
- binaries `minidump_stackwalk` and `minidump-2-core` to collect stacktrace and convert in coredump format
20+
- python script `minidump_script.py` as dumpCallback handler for breakpad
21+
922
## Image Types
1023

1124
### Release
1225

26+
Image with minimal requirements to launch ydbd in container
27+
1328
```bash
1429
ya package --docker ydb/deploy/docker/pkg.json
1530
```
1631

17-
Image with minimal requirements to launch ydbd in container.
18-
19-
The image includes:
20-
- dynamic cpp libraries (libiconv, libidn, libaio)
32+
Used base image and included:
2133
- ydb cli binary
2234
- ydbd server strip'ed binary
2335

24-
2536
### Breakpad
2637

38+
Image with google breakpad assets to collect minidump
39+
2740
```bash
2841
ya package --docker ydb/deploy/docker/breakpad/pkg.json
2942
```
3043

31-
Image with google breakpad assets to collect minidump instead of coredump.
44+
Used base image and included:
3245

33-
Extend release image with:
34-
- additional packages to collect and manage minidump format
35-
- dynamic library `libbreakpad_init.so` from breakpad_init image (ydb/deploy/breakpad_init)
36-
- environment variable `LD_PRELOAD` to load library on process start
37-
- binaries `minidump_stackwalk` and `minidump-2-core` to collect stacktrace and convert to coredump format
38-
- python script `minidump_script.py` as dumpCallback handler for google breakpad
39-
- environment variables `BREAKPAD_MINIDUMPS_PATH` and `BREAKPAD_MINIDUMPS_SCRIPT` to setup breakpad
46+
- ydb cli binary
47+
- ydbd server strip'ed binary
4048

4149
### Debug
4250

51+
Image with debug symbols and utils for dev purposes
52+
4353
```bash
4454
ya package --docker ydb/deploy/docker/debug/pkg.json
4555
```
4656

47-
Image with google breakpad assets to collect minidump instead of coredump.
48-
4957
Extend breakpad image with:
5058
- additional packages with debug utils (dnsutils, telnet, netcat-openbsd, iputils-ping, curl)
5159
- debug symbols for ydbd binary
52-
53-
## Additional Info
54-
55-
All types of images also included LICENSE and AUTHORS files from root of repository
56-

ydb/deploy/docker/debug/pkg.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"name": "ydb",
44
"maintainer": "ydb <ydb@yandex-team.ru>",
55
"description": "Package with opensource YDB for Kubernetes with debug symbols",
6-
"version": "dbg-{branch}.{revision}"
6+
"version": "debug-{branch}.{revision}"
77
},
88
"params": {
99
"docker_build_network": "host",
@@ -12,7 +12,7 @@
1212
"docker_target": "debug"
1313
},
1414
"include": [
15-
"ydb/deploy/docker/minidump/pkg.json"
15+
"ydb/deploy/docker/breakpad/pkg.json"
1616
],
1717
"data": []
1818
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# syntax=docker/dockerfile:1
2+
FROM cr.yandex/mirror/ubuntu:focal as base
3+
4+
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
5+
apt-get -yqq update && \
6+
apt-get -yqq install libcap2-bin dnsutils telnet netcat-openbsd iputils-ping gdb atop strace curl linux-tools-generic && \
7+
apt-get -yqq clean all && \
8+
rm -rf /var/lib/apt/lists/* && \
9+
groupadd -r ydb && \
10+
useradd --no-log-init -r -m -g ydb -G disk ydb
11+
12+
FROM base as ydbd-setcap
13+
14+
COPY --link ydbd /ydbd
15+
RUN /sbin/setcap CAP_SYS_RAWIO=ep /ydbd
16+
17+
FROM base
18+
19+
ARG ARC_COMMIT_ID
20+
LABEL arc_commit_id=$ARC_COMMIT_ID
21+
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
28+
USER ydb
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
{
2+
"meta": {
3+
"name": "ydb",
4+
"maintainer": "ydb <ydb@yandex-team.ru>",
5+
"description": "Package with opensource YDB for Kubernetes",
6+
"version": "{sandbox_task_id}.{branch}"
7+
},
8+
"build": {
9+
"flags": [
10+
{
11+
"name": "OPENSOURCE",
12+
"value": "yes"
13+
},
14+
{
15+
"name": "HARDENING",
16+
"value": "yes"
17+
}
18+
],
19+
"targets": [
20+
"ydb/apps/ydbd",
21+
"ydb/apps/ydb",
22+
"contrib/libs/libiconv/dynamic",
23+
"contrib/libs/libidn/dynamic",
24+
"contrib/libs/libaio/dynamic"
25+
],
26+
27+
"target-platforms": [
28+
"default-linux-x86_64"
29+
]
30+
},
31+
"data": [
32+
{
33+
"source": {
34+
"type": "RELATIVE",
35+
"path": "Dockerfile"
36+
},
37+
"destination": {
38+
"path": "/Dockerfile"
39+
}
40+
},
41+
{
42+
"source": {
43+
"type": "BUILD_OUTPUT",
44+
"path": "contrib/libs/libiconv/dynamic/libiconv.so"
45+
},
46+
"destination": {
47+
"path": "/libiconv.so",
48+
"attributes": {
49+
"mode": {
50+
"value": "+x"
51+
}
52+
}
53+
}
54+
},
55+
{
56+
"source": {
57+
"type": "BUILD_OUTPUT",
58+
"path": "contrib/libs/libidn/dynamic/liblibidn-dynamic.so"
59+
},
60+
"destination": {
61+
"path": "/liblibidn-dynamic.so",
62+
"attributes": {
63+
"mode": {
64+
"value": "+x"
65+
}
66+
}
67+
}
68+
},
69+
{
70+
"source": {
71+
"type": "BUILD_OUTPUT",
72+
"path": "contrib/libs/libaio/dynamic/liblibaio-dynamic.so"
73+
},
74+
"destination": {
75+
"path": "/liblibaio-dynamic.so",
76+
"attributes": {
77+
"mode": {
78+
"value": "+x"
79+
}
80+
}
81+
}
82+
},
83+
{
84+
"source": {
85+
"type": "BUILD_OUTPUT",
86+
"path": "ydb/apps/ydbd/ydbd"
87+
},
88+
"destination": {
89+
"path": "/ydbd",
90+
"attributes": {
91+
"mode": {
92+
"value": "+x"
93+
}
94+
}
95+
}
96+
},
97+
{
98+
"source": {
99+
"type": "BUILD_OUTPUT",
100+
"path": "ydb/apps/ydb/ydb"
101+
},
102+
"destination": {
103+
"path": "/ydb",
104+
"attributes": {
105+
"mode": {
106+
"value": "+x"
107+
}
108+
}
109+
}
110+
}
111+
]
112+
}

0 commit comments

Comments
 (0)