Skip to content

Commit 35f6e62

Browse files
authored
docker: Use pre-built curl-impersonate library from github releases (#3984)
The docker image is only available for `amd64` architecture and therefore cannot be used for arm images. Fixes #3983
1 parent 932f20d commit 35f6e62

File tree

1 file changed

+32
-7
lines changed

1 file changed

+32
-7
lines changed

Dockerfile

+32-7
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
FROM lwthiker/curl-impersonate:0.5-ff-slim-buster AS curlimpersonate
2-
31
FROM debian:12-slim AS rssbridge
42

53
LABEL description="RSS-Bridge is a PHP project capable of generating RSS and Atom feeds for websites that don't have one."
64
LABEL repository="https://github.com/RSS-Bridge/rss-bridge"
75
LABEL website="https://github.com/RSS-Bridge/rss-bridge"
86

97
ARG DEBIAN_FRONTEND=noninteractive
10-
RUN apt-get update && \
8+
RUN set -xe && \
9+
apt-get update && \
1110
apt-get install --yes --no-install-recommends \
1211
ca-certificates \
1312
nginx \
@@ -24,18 +23,44 @@ RUN apt-get update && \
2423
php-xml \
2524
php-zip \
2625
# php-zlib is enabled by default with PHP 8.2 in Debian 12
26+
# for downloading libcurl-impersonate
27+
curl \
2728
&& \
29+
# install curl-impersonate library
30+
curlimpersonate_version=0.6.0 && \
31+
{ \
32+
{ \
33+
[ $(arch) = 'aarch64' ] && \
34+
archive="libcurl-impersonate-v${curlimpersonate_version}.aarch64-linux-gnu.tar.gz" && \
35+
sha512sum="d04b1eabe71f3af06aa1ce99b39a49c5e1d33b636acedcd9fad163bc58156af5c3eb3f75aa706f335515791f7b9c7a6c40ffdfa47430796483ecef929abd905d" \
36+
; } \
37+
|| { \
38+
[ $(arch) = 'armv7l' ] && \
39+
archive="libcurl-impersonate-v${curlimpersonate_version}.arm-linux-gnueabihf.tar.gz" && \
40+
sha512sum="05906b4efa1a6ed8f3b716fd83d476b6eea6bfc68e3dbc5212d65a2962dcaa7bd1f938c9096a7535252b11d1d08fb93adccc633585ff8cb8cec5e58bfe969bc9" \
41+
; } \
42+
|| { \
43+
[ $(arch) = 'x86_64' ] && \
44+
archive="libcurl-impersonate-v${curlimpersonate_version}.x86_64-linux-gnu.tar.gz" && \
45+
sha512sum="480bbe9452cd9aff2c0daaaf91f1057b3a96385f79011628a9237223757a9b0d090c59cb5982dc54ea0d07191657299ea91ca170a25ced3d7d410fcdff130ace" \
46+
; } \
47+
} && \
48+
curl -LO "https://github.com/lwthiker/curl-impersonate/releases/download/v${curlimpersonate_version}/${archive}" && \
49+
echo "$sha512sum $archive" | sha512sum -c - && \
50+
mkdir -p /usr/local/lib/curl-impersonate && \
51+
tar xaf "$archive" -C /usr/local/lib/curl-impersonate --wildcards 'libcurl-impersonate-ff.so*' && \
52+
rm "$archive" && \
53+
apt-get purge --assume-yes curl && \
2854
rm -rf /var/lib/apt/lists/*
2955

56+
ENV LD_PRELOAD /usr/local/lib/curl-impersonate/libcurl-impersonate-ff.so
57+
ENV CURL_IMPERSONATE ff91esr
58+
3059
# logs should go to stdout / stderr
3160
RUN ln -sfT /dev/stderr /var/log/nginx/error.log; \
3261
ln -sfT /dev/stdout /var/log/nginx/access.log; \
3362
chown -R --no-dereference www-data:adm /var/log/nginx/
3463

35-
COPY --from=curlimpersonate /usr/local/lib/libcurl-impersonate-ff.so /usr/local/lib/curl-impersonate/
36-
ENV LD_PRELOAD /usr/local/lib/curl-impersonate/libcurl-impersonate-ff.so
37-
ENV CURL_IMPERSONATE ff91esr
38-
3964
COPY ./config/nginx.conf /etc/nginx/sites-available/default
4065
COPY ./config/php-fpm.conf /etc/php/8.2/fpm/pool.d/rss-bridge.conf
4166
COPY ./config/php.ini /etc/php/8.2/fpm/conf.d/90-rss-bridge.ini

0 commit comments

Comments
 (0)