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,46 @@ 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+ RUN echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main" > /etc/apt/sources.list.d/llvm20.list \
96+ && curl -sSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
97+
98+ RUN apt-add-repository ppa:git-core/ppa
99+
100+ RUN apt-get update \
101+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
102+ git \
103+ clang-format \
104+ && apt-get clean \
105+ && truncate -s 0 /var/log/*log \
106+ && rm -rf /tmp/* \
107+ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
77108
78109WORKDIR /root
79110
80111COPY --from=golang /usr/local/go /usr/local/go
81- ENV PATH=$PATH:/usr/local/go/bin
112+ ENV PATH=$PATH:/usr/local/go/bin:/root/go/bin
82113
83114COPY --from=deps /opt/imgproxy/lib /opt/imgproxy/lib
84115COPY --from=deps /opt/imgproxy/include /opt/imgproxy/include
@@ -87,5 +118,11 @@ COPY --from=deps /opt/imgproxy/bin /opt/imgproxy/bin
87118COPY --from=deps /root/.bashrc /root/.bashrc
88119ENV BASH_ENV=/root/.bashrc
89120
121+ # dev dependencies
122+ COPY --from=deps /root/deps/lychee/lychee /usr/local/bin/lychee
123+ RUN go install github.com/air-verse/air@latest && go clean -cache -modcache
124+ RUN go install github.com/evilmartians/lefthook@latest && go clean -cache -modcache
125+ RUN go install gotest.tools/gotestsum@latest
126+
90127WORKDIR /app
91128CMD ["bash" ]
0 commit comments