afbf43da by Adam Heath

Importing into a fresh repository.

1 parent fa5376f9
1 nginx.tar.gz
1 FROM docker.brainfood.com/dumb-init
2
3 RUN ["apt-docker", \
4 "-y", "install", "libgeoip1", "libxslt1.1", "libgd3", "ca-certificates", \
5 ";" ]
6
7 ADD nginx.tar.gz /usr/local
8 ADD /overlay/ /
9
10 EXPOSE 80 443
11 ENTRYPOINT ["/usr/bin/dumb-init", "/usr/local/nginx/sbin/nginx", "-g", "daemon off;"]
1 nginx.tar.gz
2 ngx_pagespeed.zip
3 psol.tar.gz
4 git-bundles/*.bundle
1 FROM docker.brainfood.com/debian-support
2
3 RUN ["apt-docker", \
4 "-y", "install", \
5 "wget", \
6 "build-essential", \
7 "zlib1g-dev", "libpcre3-dev", "libssl-dev", "libxslt1-dev", "libgd-dev", "libgeoip-dev", \
8 "zip", "unzip",\
9 "git", \
10 ";" ]
11
12 ENV \
13 NPS_VERSION=1.12.34.2-beta \
14 NGINX_VERSION=1.11.7
15
16 #ADD nginx.tar.gz ngx_pagespeed.zip psol.tar.gz /tmp/build/
17 ADD nginx.tar.gz /tmp/build/
18
19 WORKDIR /tmp/build
20
21 ADD ngx_pagespeed.zip /tmp/build/
22
23 ADD git-bundles/* /tmp/build/git-bundles/
24
25 RUN unzip ngx_pagespeed.zip
26
27 ADD psol.tar.gz /tmp/build/ngx_pagespeed-${NPS_VERSION}/
28
29 ADD /overlay/ /
30 RUN /tmp/build/build-in-docker.sh
1 #!/bin/sh
2
3 set -e
4
5 volume="$1"
6 shift
7
8 docker-git-bundle https://github.com/yaoweibin/ngx_http_substitutions_filter_module.git "$volume/git-bundles/ngx_http_substitutions_filter_module.bundle"
9
10 docker-download-file http://nginx.org/download/nginx-1.11.7.tar.gz "$volume/nginx.tar.gz"
11 docker-download-file http://dl.google.com/dl/page-speed/psol/1.12.34.2-x64.tar.gz "$volume/psol.tar.gz"
12 docker-download-file https://github.com/pagespeed/ngx_pagespeed/archive/v1.12.34.2-beta.zip "$volume/ngx_pagespeed.zip"
1 #!/bin/bash
2
3 NPS_VERSION=1.12.34.2-beta
4 NGINX_VERSION=1.11.7
5
6 set -e
7
8 #cd /tmp/build
9
10 # -- nginx
11 # extraction handled by docker-build
12 # tar -xvzf nginx.tar.gz
13
14 declare -a nginx_modules=(
15 "--add-module=/tmp/build/ngx_pagespeed-${NPS_VERSION}"
16 )
17
18 # -- ngx_http_substitutions_filter
19 for bundle in git-bundles/*; do
20 git clone "$bundle"
21 configure_module_options+=("--add-module=/tmp/build/${bundle%.*}")
22 done
23
24 # -- ngx_pagespeed
25 #unzip ngx_pagespeed.zip
26
27 #psol_url=https://dl.google.com/dl/page-speed/psol/${NPS_VERSION}.tar.gz
28 #[ -e scripts/format_binary_url.sh ] && psol_url=$(scripts/format_binary_url.sh PSOL_BINARY_URL)
29
30 #psol_url=${psol_url/https:}
31 #psol_url=${psol_url/http:}
32 #psol_url=http:$psol_url
33
34 # extraction handled by docker-build
35 # tar -xzvf /tmp/build/psol.tar.gz # extracts to psol/
36 #mv /tmp/build/psol /tmp/build/ngx_pagespeed-${NPS_VERSION}
37
38 cd nginx-${NGINX_VERSION}/
39 declare -a nginx_configure_options=(
40 --with-debug
41 --with-http_ssl_module
42 --with-http_stub_status_module
43 --with-http_realip_module
44 --with-http_auth_request_module
45 --with-http_addition_module
46 --with-http_dav_module
47 --with-http_geoip_module
48 --with-http_gzip_static_module
49 --with-http_image_filter_module
50 # --with-http_spdy_module
51 --with-http_sub_module
52 --with-http_xslt_module
53 --with-mail
54 --with-mail_ssl_module
55 # --add-module=/build/nginx-D0f8kM/nginx-1.6.2/debian/modules/nginx-auth-pam
56 # --add-module=/build/nginx-D0f8kM/nginx-1.6.2/debian/modules/nginx-dav-ext-module
57 # --add-module=/build/nginx-D0f8kM/nginx-1.6.2/debian/modules/nginx-echo
58 # --add-module=/build/nginx-D0f8kM/nginx-1.6.2/debian/modules/nginx-upstream-fair
59 # --add-module=/build/nginx-D0f8kM/nginx-1.6.2/debian/modules/ngx_http_substitutions_filter_module
60
61 )
62 ./configure \
63 "${nginx_configure_options[@]}" \
64 "${nginx_modules[@]}" \
65 ${PS_NGX_EXTRA_FLAGS}
66
67 make -j4
68 make install
69
70 mkdir -p /tmp/build-output
71 tar -C /usr/local -vc nginx | gzip -9v > /tmp/build-output/nginx.tar.gz
72 rm -rf /usr/local/nginx
73
74 rm -rf /tmp/build
1 version: '2'
2
3 services:
4 build:
5 image: docker.brainfood.com/nginx-pagespeed
6 build:
7 context: .
8 args:
9 - http_proxy
10 - https_proxy
11 compile:
12 build:
13 context: compile/nginx-pagespeed
14 args:
15 - http_proxy
16 - https_proxy
17 volumes:
18 - .:/tmp/nginx-pagespeed
19 command: ["cp", "-av", "/tmp/build-output/nginx.tar.gz", "/tmp/nginx-pagespeed/nginx.tar.gz"]
20
21 download:
22 image: docker.brainfood.com/debian-support
23 environment:
24 - http_proxy
25 - https_proxy
26 volumes:
27 - ./compile/nginx-pagespeed/:/tmp/nginx-pagespeed/
28 command: ["/tmp/nginx-pagespeed/download-files", "/tmp/nginx-pagespeed"]
29
1
2 #user nobody;
3 worker_processes 7;
4
5 #error_log logs/error.log;
6 #error_log logs/error.log notice;
7 #error_log logs/error.log info;
8
9 #pid logs/nginx.pid;
10
11
12 events {
13 worker_connections 1024;
14 }
15
16
17 http {
18 include mime.types;
19 default_type application/octet-stream;
20
21 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
22 '$status $body_bytes_sent "$http_referer" '
23 '"$http_user_agent" "$http_x_forwarded_for"';
24
25 access_log logs/access.log main;
26
27 sendfile on;
28 #tcp_nopush on;
29
30 #keepalive_timeout 0;
31 keepalive_timeout 65;
32
33 #gzip on;
34
35 server {
36 listen 80;
37 server_name localhost;
38
39 #charset koi8-r;
40
41 #access_log logs/host.access.log main;
42
43 location / {
44 root html;
45 index index.html index.htm;
46 }
47
48 #error_page 404 /404.html;
49
50 # redirect server error pages to the static page /50x.html
51 #
52 error_page 500 502 503 504 /50x.html;
53 location = /50x.html {
54 root html;
55 }
56
57 # proxy the PHP scripts to Apache listening on 127.0.0.1:80
58 #
59 #location ~ \.php$ {
60 # proxy_pass http://127.0.0.1;
61 #}
62
63 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
64 #
65 #location ~ \.php$ {
66 # root html;
67 # fastcgi_pass 127.0.0.1:9000;
68 # fastcgi_index index.php;
69 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 # include fastcgi_params;
71 #}
72
73 # deny access to .htaccess files, if Apache's document root
74 # concurs with nginx's one
75 #
76 #location ~ /\.ht {
77 # deny all;
78 #}
79 }
80
81
82 # another virtual host using mix of IP-, name-, and port-based configuration
83 #
84 #server {
85 # listen 8000;
86 # listen somename:8080;
87 # server_name somename alias another.alias;
88
89 # location / {
90 # root html;
91 # index index.html index.htm;
92 # }
93 #}
94
95
96 # HTTPS server
97 #
98 #server {
99 # listen 443 ssl;
100 # server_name localhost;
101
102 # ssl_certificate cert.pem;
103 # ssl_certificate_key cert.key;
104
105 # ssl_session_cache shared:SSL:1m;
106 # ssl_session_timeout 5m;
107
108 # ssl_ciphers HIGH:!aNULL:!MD5;
109 # ssl_prefer_server_ciphers on;
110
111 # location / {
112 # root html;
113 # index index.html index.htm;
114 # }
115 #}
116
117 include /usr/local/nginx/conf.d/*.conf;
118 }
119