Build nginx with nginx-s3-proxy Module On Arm64


#1

I was trying to setup an Object Storage with Nginx and failed due to error:
standard_init_linux.go:207: exec ..." more info »
So it looks like Docker not work now on Arm.

To use nginx-s3-proxy on ARM decided to build Nginx from source,
here is script:

#!/bin/bash
#
# Build nginx with nginx-s3-proxy Module On Arm64
# Tutorial:
# https://www.scaleway.com/docs/setting-up-object-proxy-object-storage/
# Not work
# Error: standard_init_linux.go:207: exec user process caused "exec format error"
# See: https://github.com/firefly-iii/firefly-iii/issues/1889
#
# Build Nginx from source
# This Script is converted from Docker script:
# https://github.com/coopernurse/nginx-s3-proxy
# https://github.com/coopernurse/nginx-s3-proxy/blob/master/Dockerfile

# Install Developer Tools
apt install -y \
git curl build-essential \
libpcre3 libpcre3-dev \
zlib1g-dev libssl-dev \
libxml2 libxml2-dev \
libxslt libxslt-dev \
libgeoip libgeoip-dev \
libxslt1-dev libgd-dev;

# Download Nginx and s3-proxy module sources
cd /usr/local/src;
wget http://nginx.org/download/nginx-1.14.0.tar.gz;
tar zxf nginx-1.14.0.tar.gz;
rm -rf nginx-1.14.0.tar.gz;
cd nginx-1.14.0;
git clone -b AuthV2 https://github.com/anomalizer/ngx_aws_auth.git;

# run "nginx -V" to find configure options
./configure \
--user=nginx \
--group=nginx \
--with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-hbs4cI/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' \
--with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' \
--prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--lock-path=/var/lock/nginx.lock \
--pid-path=/run/nginx.pid \
--modules-path=/usr/lib/nginx/modules \
--http-client-body-temp-path=/var/lib/nginx/body \
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--http-proxy-temp-path=/var/lib/nginx/proxy \
--http-scgi-temp-path=/var/lib/nginx/scgi \
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi \
--with-debug \
--with-pcre-jit \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_secure_link_module \
--with-http_realip_module \
--with-http_auth_request_module \
--with-http_v2_module \
--with-http_dav_module \
--with-http_slice_module \
--with-threads \
--with-http_addition_module \
--with-http_geoip_module=dynamic \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_image_filter_module=dynamic \
--with-http_sub_module \
--with-http_xslt_module=dynamic \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-mail=dynamic \
--with-mail_ssl_module \
--add-module=ngx_aws_auth \
--with-http_mp4_module;

# Build & install
make && make install;

After that you can [continue with tutorial.