|
1 |
| -FROM ubuntu:14.04.4 |
2 |
| -MAINTAINER Ric Harvey < [email protected]> |
| 1 | +FROM alpine:3.4 |
3 | 2 |
|
4 |
| -# Surpress Upstart errors/warning |
5 |
| -RUN dpkg-divert --local --rename --add /sbin/initctl |
6 |
| -RUN ln -sf /bin/true /sbin/initctl |
| 3 | +MAINTAINER ngineered < [email protected]> |
7 | 4 |
|
8 |
| -# Let the conatiner know that there is no tty |
9 |
| -ENV DEBIAN_FRONTEND noninteractive |
| 5 | +ENV php_conf /etc/php5/php.ini |
| 6 | +ENV fpm_conf /etc/php5/php-fpm.conf |
10 | 7 |
|
11 |
| -# Update base image |
12 |
| -# Add sources for latest nginx |
13 |
| -# Install software requirements |
14 |
| -RUN apt-get update && \ |
15 |
| -apt-get install -y software-properties-common && \ |
16 |
| -nginx=stable && \ |
17 |
| -add-apt-repository ppa:nginx/$nginx && \ |
18 |
| -apt-get update && \ |
19 |
| -apt-get upgrade -y && \ |
20 |
| -BUILD_PACKAGES="supervisor nginx php5-fpm git php5-mysql php-apc php5-curl php5-gd php5-intl php5-mcrypt php5-memcache php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-pgsql php5-mongo php5-ldap pwgen" && \ |
21 |
| -apt-get -y install $BUILD_PACKAGES && \ |
22 |
| -apt-get remove --purge -y software-properties-common && \ |
23 |
| -apt-get autoremove -y && \ |
24 |
| -apt-get clean && \ |
25 |
| -apt-get autoclean && \ |
26 |
| -echo -n > /var/lib/apt/extended_states && \ |
27 |
| -rm -rf /var/lib/apt/lists/* && \ |
28 |
| -rm -rf /usr/share/man/?? && \ |
29 |
| -rm -rf /usr/share/man/??_* |
| 8 | +RUN apk add --no-cache bash \ |
| 9 | + openssh-client \ |
| 10 | + wget \ |
| 11 | + nginx \ |
| 12 | + supervisor \ |
| 13 | + curl \ |
| 14 | + git \ |
| 15 | + php5-fpm \ |
| 16 | + php5-pdo \ |
| 17 | + php5-pdo_mysql \ |
| 18 | + php5-mysql \ |
| 19 | + php5-mysqli \ |
| 20 | + php5-mcrypt \ |
| 21 | + php5-ctype \ |
| 22 | + php5-zlib \ |
| 23 | + php5-gd \ |
| 24 | + php5-intl \ |
| 25 | + php5-memcache \ |
| 26 | + php5-sqlite3 \ |
| 27 | + php5-pgsql \ |
| 28 | + php5-xml \ |
| 29 | + php5-xsl \ |
| 30 | + php5-curl \ |
| 31 | + php5-openssl \ |
| 32 | + php5-iconv \ |
| 33 | + php5-json \ |
| 34 | + php5-phar \ |
| 35 | + php5-dom && \ |
| 36 | + curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer && \ |
| 37 | + mkdir -p /etc/nginx && \ |
| 38 | + mkdir -p /var/www/app && \ |
| 39 | + mkdir -p /run/nginx && \ |
| 40 | + mkdir -p /var/log/supervisor |
30 | 41 |
|
31 |
| -# tweak nginx config |
32 |
| -RUN sed -i -e"s/worker_processes 1/worker_processes 5/" /etc/nginx/nginx.conf && \ |
33 |
| -sed -i -e"s/keepalive_timeout\s*65/keepalive_timeout 2/" /etc/nginx/nginx.conf && \ |
34 |
| -sed -i -e"s/keepalive_timeout 2/keepalive_timeout 2;\n\tclient_max_body_size 100m/" /etc/nginx/nginx.conf && \ |
35 |
| -echo "daemon off;" >> /etc/nginx/nginx.conf |
36 |
| - |
37 |
| -# tweak php-fpm config |
38 |
| -RUN sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" /etc/php5/fpm/php.ini && \ |
39 |
| -sed -i -e "s/upload_max_filesize\s*=\s*2M/upload_max_filesize = 100M/g" /etc/php5/fpm/php.ini && \ |
40 |
| -sed -i -e "s/post_max_size\s*=\s*8M/post_max_size = 100M/g" /etc/php5/fpm/php.ini && \ |
41 |
| -sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" /etc/php5/fpm/php-fpm.conf && \ |
42 |
| -sed -i -e "s/;catch_workers_output\s*=\s*yes/catch_workers_output = yes/g" /etc/php5/fpm/pool.d/www.conf && \ |
43 |
| -sed -i -e "s/pm.max_children = 5/pm.max_children = 9/g" /etc/php5/fpm/pool.d/www.conf && \ |
44 |
| -sed -i -e "s/pm.start_servers = 2/pm.start_servers = 3/g" /etc/php5/fpm/pool.d/www.conf && \ |
45 |
| -sed -i -e "s/pm.min_spare_servers = 1/pm.min_spare_servers = 2/g" /etc/php5/fpm/pool.d/www.conf && \ |
46 |
| -sed -i -e "s/pm.max_spare_servers = 3/pm.max_spare_servers = 4/g" /etc/php5/fpm/pool.d/www.conf && \ |
47 |
| -sed -i -e "s/pm.max_requests = 500/pm.max_requests = 200/g" /etc/php5/fpm/pool.d/www.conf |
48 |
| - |
49 |
| -# fix ownership of sock file for php-fpm |
50 |
| -RUN sed -i -e "s/;listen.mode = 0660/listen.mode = 0750/g" /etc/php5/fpm/pool.d/www.conf && \ |
51 |
| -find /etc/php5/cli/conf.d/ -name "*.ini" -exec sed -i -re 's/^(\s*)#(.*)/\1;\2/g' {} \; |
| 42 | +ADD conf/supervisord.conf /etc/supervisord.conf |
52 | 43 |
|
53 |
| -# mycrypt conf |
54 |
| -RUN php5enmod mcrypt |
| 44 | +# Copy our nginx config |
| 45 | +RUN rm -Rf /etc/nginx/nginx.conf |
| 46 | +ADD conf/nginx.conf /etc/nginx/nginx.conf |
55 | 47 |
|
56 | 48 | # nginx site conf
|
57 |
| -RUN rm -Rf /etc/nginx/conf.d/* && \ |
58 |
| -rm -Rf /etc/nginx/sites-available/default && \ |
59 |
| -mkdir -p /etc/nginx/ssl/ |
| 49 | +RUN mkdir -p /etc/nginx/sites-available/ && \ |
| 50 | +mkdir -p /etc/nginx/sites-enabled/ && \ |
| 51 | +mkdir -p /etc/nginx/ssl/ && \ |
| 52 | +rm -Rf /var/www/* && \ |
| 53 | +mkdir /var/www/html/ |
60 | 54 | ADD conf/nginx-site.conf /etc/nginx/sites-available/default.conf
|
61 | 55 | RUN ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
|
62 | 56 |
|
63 |
| -# Add git commands to allow container updating |
| 57 | +# tweak php-fpm config |
| 58 | +RUN sed -i -e "s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g" ${php_conf} && \ |
| 59 | +sed -i -e "s/upload_max_filesize\s*=\s*2M/upload_max_filesize = 100M/g" ${php_conf} && \ |
| 60 | +sed -i -e "s/post_max_size\s*=\s*8M/post_max_size = 100M/g" ${php_conf} && \ |
| 61 | +sed -i -e "s/variables_order = \"GPCS\"/variables_order = \"EGPCS\"/g" ${php_conf} && \ |
| 62 | +sed -i -e "s/;daemonize\s*=\s*yes/daemonize = no/g" ${fpm_conf} && \ |
| 63 | +sed -i -e "s/;catch_workers_output\s*=\s*yes/catch_workers_output = yes/g" ${fpm_conf} && \ |
| 64 | +sed -i -e "s/pm.max_children = 4/pm.max_children = 4/g" ${fpm_conf} && \ |
| 65 | +sed -i -e "s/pm.start_servers = 2/pm.start_servers = 3/g" ${fpm_conf} && \ |
| 66 | +sed -i -e "s/pm.min_spare_servers = 1/pm.min_spare_servers = 2/g" ${fpm_conf} && \ |
| 67 | +sed -i -e "s/pm.max_spare_servers = 3/pm.max_spare_servers = 4/g" ${fpm_conf} && \ |
| 68 | +sed -i -e "s/pm.max_requests = 500/pm.max_requests = 200/g" ${fpm_conf} && \ |
| 69 | +sed -i -e "s/user = nobody/user = nginx/g" ${fpm_conf} && \ |
| 70 | +sed -i -e "s/group = nobody/group = nginx/g" ${fpm_conf} && \ |
| 71 | +sed -i -e "s/;listen.mode = 0660/listen.mode = 0666/g" ${fpm_conf} && \ |
| 72 | +sed -i -e "s/;listen.owner = nobody/listen.owner = nginx/g" ${fpm_conf} && \ |
| 73 | +sed -i -e "s/;listen.group = nobody/listen.group = nginx/g" ${fpm_conf} && \ |
| 74 | +sed -i -e "s/listen = 127.0.0.1:9000/listen = \/var\/run\/php-fpm.sock/g" ${fpm_conf} &&\ |
| 75 | +find /etc/php5/conf.d/ -name "*.ini" -exec sed -i -re 's/^(\s*)#(.*)/\1;\2/g' {} \; |
| 76 | + |
| 77 | +# Add Scripts |
| 78 | +ADD scripts/start.sh /start.sh |
64 | 79 | ADD scripts/pull /usr/bin/pull
|
65 | 80 | ADD scripts/push /usr/bin/push
|
66 | 81 | RUN chmod 755 /usr/bin/pull && chmod 755 /usr/bin/push
|
67 |
| - |
68 |
| -# Supervisor Config |
69 |
| -ADD conf/supervisord.conf /etc/supervisord.conf |
70 |
| - |
71 |
| -# Start Supervisord |
72 |
| -ADD scripts/start.sh /start.sh |
73 | 82 | RUN chmod 755 /start.sh
|
74 | 83 |
|
75 |
| -# Setup Volume |
76 |
| -VOLUME ["/usr/share/nginx/html"] |
77 |
| - |
78 |
| -# add test PHP file |
79 |
| -ADD src/index.php /usr/share/nginx/html/index.php |
80 |
| -RUN chown -Rf www-data.www-data /usr/share/nginx/html/ |
| 84 | +# copy in code |
| 85 | +ADD src/ /var/www/html/ |
81 | 86 |
|
82 |
| -# Expose Ports |
83 |
| -EXPOSE 443 |
84 |
| -EXPOSE 80 |
| 87 | +EXPOSE 443 80 |
85 | 88 |
|
86 |
| -CMD ["/bin/bash", "/start.sh"] |
| 89 | +#CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"] |
| 90 | +CMD ["/start.sh"] |
0 commit comments