Skip to content
Snippets Groups Projects

MVP build process

Merged Erick Hitter requested to merge 1-add-build into master
Compare and
3 files
+ 130
0
Compare changes
  • Side-by-side
  • Inline
Files
3
scripts/build.sh 0 → 100644
+ 110
0
 
#!/usr/bin/env bash
 
 
set -e
 
set -x
 
 
# Log when the build occurred.
 
date
 
echo ""
 
 
# Capture our starting point for easier navigation.
 
OG_DIR=$(pwd)
 
export OG_DIR
 
echo "$OG_DIR"
 
echo ""
 
 
# Common paths.
 
NGINX_SRC_DIR="$OG_DIR/src/nginx"
 
export NGINX_SRC_DIR
 
mkdir -p "$NGINX_SRC_DIR"
 
 
NGINX_SRC_ARCHIVE="$OG_DIR/src/nginx-src.tar.gz"
 
export NGINX_SRC_ARCHIVE
 
 
NGINX_SRC_ARCHIVE_SIGNATURE="$OG_DIR/src/nginx-src.tar.gz.asc"
 
export NGINX_SRC_ARCHIVE_SIGNATURE
 
 
OPENSSL_DIR="$OG_DIR/src/openssl"
 
export OPENSSL_DIR
 
 
NGX_BROTLI_DIR="$OG_DIR/src/ngx_brotli"
 
export NGX_BROTLI_DIR
 
 
NGINX_CT_DIR="$OG_DIR/src/nginx_ct"
 
export NGINX_CT_DIR
 
 
# Dependency: OpenSSL
 
echo "DEPENDENCY: OpenSSL"
 
git clone -q --recursive --depth 1 https://github.com/openssl/openssl.git -b "$OPENSSL_TAG" "$OPENSSL_DIR"
 
cd "$OPENSSL_DIR" || exit
 
./config
 
 
# Dependency: ngx_brotli (no tagged releases)
 
echo ""
 
echo "DEPENDENCY: ngx_brotli"
 
git clone -q --recursive --depth 1 https://github.com/google/ngx_brotli.git "$NGX_BROTLI_DIR"
 
 
# Dependency: nginx-ct
 
echo ""
 
echo "DEPENDENCY: nginx-ct"
 
git clone -q --recursive --depth 1 https://github.com/grahamedgecombe/nginx-ct.git -b "$NGINX_CT_TAG" "$NGINX_CT_DIR"
 
 
# Configure nginx
 
echo ""
 
echo "DOWNLOADING & VERIFYING NGINX RELEASE"
 
cd "$OG_DIR" || exit
 
 
# Disabled as nginx is signing with individuals' keys.
 
#curl -o "$NGINX_SRC_ARCHIVE" "$NGINX_SRC"
 
#curl -o "$NGINX_SRC_ARCHIVE_SIGNATURE" "$NGINX_SIGNING"
 
#gpg --import <(curl https://nginx.org/keys/nginx_signing.key)
 
#gpg --verify "$NGINX_SRC_ARCHIVE_SIGNATURE" "$NGINX_SRC_ARCHIVE"
 
 
tar -zxvf "$NGINX_SRC_ARCHIVE" -C "$NGINX_SRC_DIR" --strip 1
 
cd "$NGINX_SRC_DIR" || exit
 
./configure \
 
--prefix=/etc/nginx \
 
--sbin-path=/usr/sbin/nginx \
 
--conf-path=/etc/nginx/nginx.conf \
 
--error-log-path=/var/log/nginx/error.log \
 
--http-log-path=/var/log/nginx/access.log \
 
--pid-path=/var/run/nginx.pid \
 
--lock-path=/var/run/nginx.lock \
 
--http-client-body-temp-path=/var/cache/nginx/client_temp \
 
--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
 
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
 
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
 
--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
 
--user=www-data \
 
--group=www-data \
 
--with-http_ssl_module \
 
--with-http_realip_module \
 
--with-http_addition_module \
 
--with-http_sub_module \
 
--with-http_dav_module \
 
--with-http_flv_module \
 
--with-http_mp4_module \
 
--with-http_gunzip_module \
 
--with-http_gzip_static_module \
 
--with-http_random_index_module \
 
--with-http_secure_link_module \
 
--with-http_stub_status_module \
 
--with-http_auth_request_module \
 
--with-threads \
 
--with-stream \
 
--with-stream_ssl_module \
 
--with-http_slice_module \
 
--with-mail \
 
--with-mail_ssl_module \
 
--with-file-aio \
 
--with-http_v2_module \
 
--with-openssl="$OPENSSL_DIR" \
 
--add-module="$NGX_BROTLI_DIR" \
 
--add-module="$NGINX_CT_DIR"
 
 
# Build nginx
 
echo ""
 
echo "BUILDING NGINX"
 
echo "Using $(nproc) jobs"
 
make -j"$(nproc)"
 
"$NGINX_SRC_DIR/objs/nginx -V"
Loading