11# Use Debian Bullseye as a base image to link against glibc 2.31.
2- FROM public.ecr.aws/debian/debian:bullseye-slim AS base
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,44 @@ 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
6776RUN apt-get update \
6877 && 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
78+ bash \
79+ curl \
80+ ca-certificates \
81+ build-essential \
82+ pkg-config \
83+ libssl-dev \
84+ libstdc++-10-dev \
85+ clang-format \
86+ software-properties-common \
87+ gpg-agent \
88+ && apt-get clean \
89+ && truncate -s 0 /var/log/*log \
90+ && rm -rf /tmp/* \
91+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
92+
93+ RUN echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main" > /etc/apt/sources.list.d/llvm20.list \
94+ && curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
95+
96+ RUN apt-add-repository ppa:git-core/ppa
97+
98+ RUN apt-get update \
99+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
100+ git \
101+ clang-format \
102+ && apt-get clean \
103+ && truncate -s 0 /var/log/*log \
104+ && rm -rf /tmp/* \
105+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
77106
78107WORKDIR /root
79108
80109COPY --from=golang /usr/local/go /usr/local/go
81- ENV PATH=$PATH:/usr/local/go/bin
110+ ENV PATH=$PATH:/usr/local/go/bin:/root/go/bin
82111
83112COPY --from=deps /opt/imgproxy/lib /opt/imgproxy/lib
84113COPY --from=deps /opt/imgproxy/include /opt/imgproxy/include
@@ -87,5 +116,11 @@ COPY --from=deps /opt/imgproxy/bin /opt/imgproxy/bin
87116COPY --from=deps /root/.bashrc /root/.bashrc
88117ENV BASH_ENV=/root/.bashrc
89118
119+ # dev dependencies
120+ COPY --from=deps /root/deps/lychee/lychee /usr/local/bin/lychee
121+ RUN go install github.com/air-verse/air@latest && go clean -cache -modcache
122+ RUN go install github.com/evilmartians/lefthook@latest && go clean -cache -modcache
123+ RUN go install gotest.tools/gotestsum@latest
124+
90125WORKDIR /app
91126CMD ["bash" ]
0 commit comments