diff --git a/4.0/alpine/Dockerfile b/4.0/alpine/Dockerfile index a0508b7..6a727cd 100644 --- a/4.0/alpine/Dockerfile +++ b/4.0/alpine/Dockerfile @@ -53,6 +53,8 @@ RUN set -eux; \ chmod -R ugo=rwX config db sqlite; \ find log tmp -type d -exec chmod 1777 '{}' + +# build for musl-libc, not glibc (see https://github.com/sparklemotion/nokogiri/issues/2075, https://github.com/rubygems/rubygems/issues/3174) +ENV BUNDLE_FORCE_RUBY_PLATFORM 1 RUN set -eux; \ \ apk add --no-cache --virtual .build-deps \ @@ -88,14 +90,10 @@ RUN set -eux; \ rm /usr/local/bundle/gems/rbpdf-font-1.19.*/lib/fonts/ttf2ufm/ttf2ufm; \ \ runDeps="$( \ - find /usr/local -type f -executable -exec ldd '{}' ';' \ - | awk '/=>/ { print $(NF-1) }' \ - | sort -u \ - | grep -v '^/usr/local/' \ - | xargs -rn1 basename \ - | grep -v 'ld-musl-' \ - | sed -e 's/^/so:/' \ - | sort -u \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/bundle/gems \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ )"; \ apk add --no-network --virtual .redmine-rundeps $runDeps; \ apk del --no-network .build-deps diff --git a/4.1/alpine/Dockerfile b/4.1/alpine/Dockerfile index abd7f42..95693bc 100644 --- a/4.1/alpine/Dockerfile +++ b/4.1/alpine/Dockerfile @@ -54,6 +54,8 @@ RUN set -eux; \ chmod -R ugo=rwX config db sqlite; \ find log tmp -type d -exec chmod 1777 '{}' + +# build for musl-libc, not glibc (see https://github.com/sparklemotion/nokogiri/issues/2075, https://github.com/rubygems/rubygems/issues/3174) +ENV BUNDLE_FORCE_RUBY_PLATFORM 1 RUN set -eux; \ \ apk add --no-cache --virtual .build-deps \ @@ -87,14 +89,10 @@ RUN set -eux; \ rm /usr/local/bundle/gems/rbpdf-font-1.19.*/lib/fonts/ttf2ufm/ttf2ufm; \ \ runDeps="$( \ - find /usr/local -type f -executable -exec ldd '{}' ';' \ - | awk '/=>/ { print $(NF-1) }' \ - | sort -u \ - | grep -v '^/usr/local/' \ - | xargs -rn1 basename \ - | grep -v 'ld-musl-' \ - | sed -e 's/^/so:/' \ - | sort -u \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/bundle/gems \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ )"; \ apk add --no-network --virtual .redmine-rundeps $runDeps; \ apk del --no-network .build-deps diff --git a/Dockerfile-alpine.template b/Dockerfile-alpine.template index 97c3306..5baf8e6 100644 --- a/Dockerfile-alpine.template +++ b/Dockerfile-alpine.template @@ -54,6 +54,8 @@ RUN set -eux; \ chmod -R ugo=rwX config db sqlite; \ find log tmp -type d -exec chmod 1777 '{}' + +# build for musl-libc, not glibc (see https://github.com/sparklemotion/nokogiri/issues/2075, https://github.com/rubygems/rubygems/issues/3174) +ENV BUNDLE_FORCE_RUBY_PLATFORM 1 RUN set -eux; \ \ apk add --no-cache --virtual .build-deps \ @@ -89,14 +91,10 @@ RUN set -eux; \ rm /usr/local/bundle/gems/rbpdf-font-1.19.*/lib/fonts/ttf2ufm/ttf2ufm; \ \ runDeps="$( \ - find /usr/local -type f -executable -exec ldd '{}' ';' \ - | awk '/=>/ { print $(NF-1) }' \ - | sort -u \ - | grep -v '^/usr/local/' \ - | xargs -rn1 basename \ - | grep -v 'ld-musl-' \ - | sed -e 's/^/so:/' \ - | sort -u \ + scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/bundle/gems \ + | tr ',' '\n' \ + | sort -u \ + | awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \ )"; \ apk add --no-network --virtual .redmine-rundeps $runDeps; \ apk del --no-network .build-deps