1- # Use Debian Bullseye as a base image to link against glibc 2.31 .
2- FROM public.ecr.aws/debian/debian:bullseye-slim AS base
1+ # Use ubuntu 22.04 as a base image to link against glibc 2.35 .
2+ FROM public.ecr.aws/ubuntu/ubuntu:22.04 AS base
33
44RUN apt-get update \
55 && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
6- bash \
7- curl \
8- git \
9- ca-certificates \
10- build-essential \
11- pkg-config \
12- libssl-dev \
13- libstdc++-10-dev
6+ bash \
7+ curl \
8+ git \
9+ ca-certificates \
10+ build-essential \
11+ pkg-config \
12+ libssl-dev \
13+ libstdc++-10-dev \
14+ && apt-get clean \
15+ && truncate -s 0 /var/log/*log \
16+ && rm -rf /tmp/* \
17+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
1418
1519WORKDIR /root
1620
@@ -27,20 +31,25 @@ FROM base AS deps
2731
2832COPY install-rust.sh ./
2933
30- RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
31- autoconf \
32- autopoint \
33- automake \
34- cmake \
35- nasm \
36- libtool \
37- python3-pip \
38- python3-venv \
39- gettext \
40- gperf \
34+ RUN apt-get update \
35+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
36+ autoconf \
37+ autopoint \
38+ automake \
39+ cmake \
40+ nasm \
41+ libtool \
42+ python3-pip \
43+ python3-venv \
44+ gettext \
45+ gperf \
4146 && ./install-rust.sh \
4247 && python3 -m venv /root/.python \
43- && /root/.python/bin/pip install meson ninja packaging
48+ && /root/.python/bin/pip install meson ninja packaging \
49+ && apt-get clean \
50+ && truncate -s 0 /var/log/*log \
51+ && rm -rf /tmp/* \
52+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
4453
4554COPY versions.sh build-deps.sh build-bash-profile.sh *.patch ./
4655COPY --from=deps-src /root/deps /root/deps
@@ -61,24 +70,47 @@ RUN ./install-go.sh
6170
6271# ==============================================================================
6372
64- FROM public.ecr.aws/debian/debian:bullseye-slim AS final
73+ FROM public.ecr.aws/ubuntu/ubuntu:22.04 AS final
6574LABEL maintainer=
"Sergey Alexandrovich <[email protected] >" 6675
76+ ENV IMGPROXY_IN_BASE_CONTAINER=true
77+
6778RUN apt-get update \
6879 && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
69- bash \
70- curl \
71- git \
72- ca-certificates \
73- build-essential \
74- pkg-config \
75- libssl-dev \
76- libstdc++-10-dev
80+ bash \
81+ curl \
82+ ca-certificates \
83+ build-essential \
84+ pkg-config \
85+ libssl-dev \
86+ libstdc++-10-dev \
87+ clang-format \
88+ software-properties-common \
89+ gpg-agent \
90+ && apt-get clean \
91+ && truncate -s 0 /var/log/*log \
92+ && rm -rf /tmp/* \
93+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
94+
95+ # Install LLVM 20 (for clang-format) and latest git (custom, newer versions)
96+ RUN echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main" > /etc/apt/sources.list.d/llvm20.list \
97+ && curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
98+
99+ RUN apt-add-repository ppa:git-core/ppa
100+
101+ RUN apt-get update \
102+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
103+ git \
104+ clang-format \
105+ && apt-get clean \
106+ && truncate -s 0 /var/log/*log \
107+ && rm -rf /tmp/* \
108+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
77109
78110WORKDIR /root
79111
80112COPY --from=golang /usr/local/go /usr/local/go
81- ENV PATH=$PATH:/usr/local/go/bin
113+ ENV PATH=$PATH:/usr/local/go/bin:/root/go/bin
82114
83115COPY --from=deps /opt/imgproxy/lib /opt/imgproxy/lib
84116COPY --from=deps /opt/imgproxy/include /opt/imgproxy/include
@@ -87,5 +119,12 @@ COPY --from=deps /opt/imgproxy/bin /opt/imgproxy/bin
87119COPY --from=deps /root/.bashrc /root/.bashrc
88120ENV BASH_ENV=/root/.bashrc
89121
122+ # dev dependencies
123+ COPY --from=deps /root/deps/lychee/lychee /usr/local/bin/lychee
124+ RUN go install github.com/golangci/golangci-lint/v2/cmd/
[email protected] && go clean -cache -modcache
125+ RUN go install github.com/air-verse/air@latest && go clean -cache -modcache
126+ RUN go install github.com/evilmartians/lefthook@latest && go clean -cache -modcache
127+ RUN go install gotest.tools/gotestsum@latest && go clean -cache -modcache
128+
90129WORKDIR /app
91130CMD ["bash" ]
0 commit comments