Skip to content

Commit 32b79eb

Browse files
author
Yanuar Waskito
committed
Initial Commit
0 parents  commit 32b79eb

File tree

2 files changed

+113
-0
lines changed

2 files changed

+113
-0
lines changed

Dockerfile

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
FROM mhart/alpine-node:6.11.2
2+
3+
# Inspired by wunderkraut/alpine-nginx-pagespeed (aka ilari/alpine-nginx-pagespeed:latest) with some extra modules.
4+
5+
RUN set -x && \
6+
apk --no-cache add -t .build-deps \
7+
apache2-dev \
8+
apr-dev \
9+
apr-util-dev \
10+
build-base \
11+
curl \
12+
icu-dev \
13+
libjpeg-turbo-dev \
14+
linux-headers \
15+
gperf \
16+
openssl-dev \
17+
pcre-dev \
18+
python \
19+
zlib-dev && \
20+
# Build libpng:
21+
# This sadly requires an old version of http://www.libpng.org/pub/png/libpng.html
22+
LIBPNG_VERSION=1.2.56 && \
23+
cd /tmp && \
24+
curl -L https://nchc.dl.sourceforge.net/project/libpng/libpng12/older-releases/1.2.56/libpng-1.2.56.tar.gz | tar -zx && \
25+
cd /tmp/libpng-${LIBPNG_VERSION} && \
26+
./configure --build=$CBUILD --host=$CHOST --prefix=/usr --enable-shared --with-libpng-compat && \
27+
make install V=0 && \
28+
# Build PageSpeed:
29+
# Check https://github.com/pagespeed/ngx_pagespeed/releases for the latest version
30+
PAGESPEED_VERSION=1.11.33.3 && \
31+
cd /tmp && \
32+
curl -L https://dl.google.com/dl/linux/mod-pagespeed/tar/beta/mod-pagespeed-beta-${PAGESPEED_VERSION}-r0.tar.bz2 | tar -jx && \
33+
curl -L https://github.com/pagespeed/ngx_pagespeed/archive/v${PAGESPEED_VERSION}-beta.tar.gz | tar -zx && \
34+
cd /tmp/modpagespeed-${PAGESPEED_VERSION} && \
35+
curl -L https://raw.githubusercontent.com/iler/alpine-nginx-pagespeed/master/patches/automatic_makefile.patch | patch -p1 && \
36+
curl -L https://raw.githubusercontent.com/iler/alpine-nginx-pagespeed/master/patches/libpng_cflags.patch | patch -p1 && \
37+
curl -L https://raw.githubusercontent.com/iler/alpine-nginx-pagespeed/master/patches/pthread_nonrecursive_np.patch | patch -p1 && \
38+
curl -L https://raw.githubusercontent.com/iler/alpine-nginx-pagespeed/master/patches/rename_c_symbols.patch | patch -p1 && \
39+
curl -L https://raw.githubusercontent.com/iler/alpine-nginx-pagespeed/master/patches/stack_trace_posix.patch | patch -p1 && \
40+
./generate.sh -D use_system_libs=1 -D _GLIBCXX_USE_CXX11_ABI=0 -D use_system_icu=1 && \
41+
cd /tmp/modpagespeed-${PAGESPEED_VERSION}/src && \
42+
make BUILDTYPE=Release CXXFLAGS=" -I/usr/include/apr-1 -I/tmp/libpng-${LIBPNG_VERSION} -fPIC -D_GLIBCXX_USE_CXX11_ABI=0" CFLAGS=" -U_FORTIFY_SOURCE -I/usr/include/apr-1 -I/tmp/libpng-${LIBPNG_VERSION} -fPIC -D_GLIBCXX_USE_CXX11_ABI=0" && \
43+
cd /tmp/modpagespeed-${PAGESPEED_VERSION}/src/pagespeed/automatic/ && \
44+
make psol BUILDTYPE=Release CXXFLAGS=" -I/usr/include/apr-1 -I/tmp/libpng-${LIBPNG_VERSION} -fPIC -D_GLIBCXX_USE_CXX11_ABI=0" CFLAGS=" -U_FORTIFY_SOURCE -I/usr/include/apr-1 -I/tmp/libpng-${LIBPNG_VERSION} -fPIC -D_GLIBCXX_USE_CXX11_ABI=0" && \
45+
mkdir -p /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol && \
46+
mkdir -p /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/lib/Release/linux/x64 && \
47+
mkdir -p /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/out/Release && \
48+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/out/Release/obj /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/out/Release/ && \
49+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/net /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/ && \
50+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/testing /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/ && \
51+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/pagespeed /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/ && \
52+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/third_party /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/ && \
53+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/tools /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/include/ && \
54+
cp -r /tmp/modpagespeed-${PAGESPEED_VERSION}/src/pagespeed/automatic/pagespeed_automatic.a /tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta/psol/lib/Release/linux/x64 && \
55+
# Build Nginx with support for PageSpeed:
56+
# Check http://nginx.org/en/download.html for the latest version.
57+
NGINX_VERSION=1.11.13 && \
58+
cd /tmp && \
59+
curl -L http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz | tar -zx && \
60+
cd /tmp/nginx-${NGINX_VERSION} && \
61+
LD_LIBRARY_PATH=/tmp/modpagespeed-${PAGESPEED_VERSION}/usr/lib ./configure --with-ipv6 \
62+
--prefix=/var/lib/nginx \
63+
--sbin-path=/usr/sbin \
64+
--modules-path=/usr/lib/nginx \
65+
--with-http_ssl_module \
66+
--with-http_gzip_static_module \
67+
--with-file-aio \
68+
--with-http_v2_module \
69+
--without-http_autoindex_module \
70+
--without-http_browser_module \
71+
--without-http_geo_module \
72+
--without-http_map_module \
73+
--without-http_memcached_module \
74+
--without-http_userid_module \
75+
--without-mail_pop3_module \
76+
--without-mail_imap_module \
77+
--without-mail_smtp_module \
78+
--without-http_split_clients_module \
79+
--without-http_scgi_module \
80+
--without-http_referer_module \
81+
--without-http_upstream_ip_hash_module \
82+
--prefix=/etc/nginx \
83+
--conf-path=/etc/nginx/nginx.conf \
84+
--http-log-path=/var/log/nginx/access.log \
85+
--error-log-path=/var/log/nginx/error.log \
86+
--pid-path=/var/run/nginx.pid \
87+
--add-module=/tmp/ngx_pagespeed-${PAGESPEED_VERSION}-beta \
88+
--with-cc-opt="-fPIC -I /usr/include/apr-1" \
89+
--with-ld-opt="-luuid -lapr-1 -laprutil-1 -licudata -licuuc -L/tmp/modpagespeed-${PAGESPEED_VERSION}/usr/lib -lpng12 -lturbojpeg -ljpeg" && \
90+
make install --silent && \
91+
# Clean-up:
92+
cd && \
93+
apk del .build-deps && \
94+
rm -rf /tmp/* && \
95+
# forward request and error logs to docker log collector
96+
ln -sf /dev/stdout /var/log/nginx/access.log && \
97+
ln -sf /dev/stderr /var/log/nginx/error.log && \
98+
# Make PageSpeed cache writabl:
99+
mkdir -p /var/cache/ngx_pagespeed && \
100+
chmod -R o+wr /var/cache/ngx_pagespeed
101+
102+
EXPOSE 80 443
103+
104+
CMD ["nginx", "-g", "daemon off;"]

README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
What is this?
2+
--------------
3+
This is Dockerized image of NodeJS and NPM based on (Alpine Nginx Pagespeed)[https://hub.docker.com/r/wernight/alpine-nginx-pagespeed/].
4+
5+
Usage
6+
---------------
7+
Configuration is very similar to the official [Nginx image](https://hub.docker.com/_/nginx).
8+
9+
$ docker run -d -p 80:80 waskito/alpine-node-nginx-pagespeed

0 commit comments

Comments
 (0)