Skip to content

Commit 9e216a3

Browse files
author
Ric Harvey
committed
Updated to alpine linux
1 parent 16abc13 commit 9e216a3

11 files changed

+961
-169
lines changed

CHANGELOG

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Change Log
2+
All notable changes to this project will be documented in this file.
3+
4+
## [Unreleased]
5+
### Added
6+
- Documentation updates to cover PHP modules
7+
8+
## [0.1.1] - 2016-6-15
9+
### Added
10+
- Added php5-gd, php5-intl, php5-memcache, php5-sqlite3, php5-pgsql, php5-xml, php5-xsl @richarvey
11+
12+
## [0.1.0] - 2016-06-15
13+
### Added
14+
- Pull in alpine build @drobertson2
15+
- Merge git scripts from old stable @richarvey
16+
- Tested Tamplating @richarvey
17+
18+
## [0.0.0] - 2016-6-14
19+
### Added
20+
- Port nginx/php fpm to alpine @danroberston2

Dockerfile

+73-69
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,90 @@
1-
FROM ubuntu:14.04.4
2-
MAINTAINER Ric Harvey <[email protected]>
1+
FROM alpine:3.4
32

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]>
74

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
107

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
3041

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
5243

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
5547

5648
# 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/
6054
ADD conf/nginx-site.conf /etc/nginx/sites-available/default.conf
6155
RUN ln -s /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
6256

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
6479
ADD scripts/pull /usr/bin/pull
6580
ADD scripts/push /usr/bin/push
6681
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
7382
RUN chmod 755 /start.sh
7483

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/
8186

82-
# Expose Ports
83-
EXPOSE 443
84-
EXPOSE 80
87+
EXPOSE 443 80
8588

86-
CMD ["/bin/bash", "/start.sh"]
89+
#CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisord.conf"]
90+
CMD ["/start.sh"]

0 commit comments

Comments
 (0)