docker: switch to Alpine Linux for the master image
Relates to https://github.com/shaarli/Shaarli/issues/843 Changed: - switch base image from Debian:Jessie to Alpine:3.6 - switch to PHP 7.1 - switch from supervisord to s6 to manage services See: - https://alpinelinux.org/ - https://wiki.alpinelinux.org/wiki/Nginx_with_PHP - http://www.skarnet.org/software/s6/ - http://www.skarnet.org/software/s6/s6-svscan.html - http://www.skarnet.org/software/s6/s6-svc.html - http://www.skarnet.org/software/s6/s6-svstat.html Signed-off-by: VirtualTam <virtualtam@flibidi.net>
This commit is contained in:
parent
2f69b6d04e
commit
1a216faecb
14 changed files with 73 additions and 53 deletions
2
Makefile
2
Makefile
|
@ -115,7 +115,7 @@ check_permissions:
|
||||||
@echo "----------------------"
|
@echo "----------------------"
|
||||||
@echo "Check file permissions"
|
@echo "Check file permissions"
|
||||||
@echo "----------------------"
|
@echo "----------------------"
|
||||||
@for file in `git ls-files`; do \
|
@for file in `git ls-files | grep -v docker`; do \
|
||||||
if [ -x $$file ]; then \
|
if [ -x $$file ]; then \
|
||||||
errors=true; \
|
errors=true; \
|
||||||
echo "$${file} is executable"; \
|
echo "$${file} is executable"; \
|
||||||
|
|
47
docker/alpine/Dockerfile.master
Normal file
47
docker/alpine/Dockerfile.master
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
FROM alpine:3.6
|
||||||
|
MAINTAINER Shaarli Community
|
||||||
|
|
||||||
|
RUN apk --update --no-cache add \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
nginx \
|
||||||
|
php7 \
|
||||||
|
php7-ctype \
|
||||||
|
php7-curl \
|
||||||
|
php7-fpm \
|
||||||
|
php7-gd \
|
||||||
|
php7-iconv \
|
||||||
|
php7-intl \
|
||||||
|
php7-json \
|
||||||
|
php7-mbstring \
|
||||||
|
php7-openssl \
|
||||||
|
php7-phar \
|
||||||
|
php7-session \
|
||||||
|
php7-xml \
|
||||||
|
php7-zlib \
|
||||||
|
s6
|
||||||
|
|
||||||
|
COPY nginx.conf /etc/nginx/nginx.conf
|
||||||
|
COPY php-fpm.conf /etc/php7/php-fpm.conf
|
||||||
|
COPY services.d /etc/services.d
|
||||||
|
|
||||||
|
RUN curl -sS https://getcomposer.org/installer | php7 -- --install-dir=/usr/local/bin --filename=composer \
|
||||||
|
&& rm -rf /etc/php7/php-fpm.d/www.conf \
|
||||||
|
&& sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php7/php.ini \
|
||||||
|
&& sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php7/php.ini
|
||||||
|
|
||||||
|
|
||||||
|
WORKDIR /var/www
|
||||||
|
RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \
|
||||||
|
&& mv Shaarli-master shaarli \
|
||||||
|
&& cd shaarli \
|
||||||
|
&& composer --prefer-dist --no-dev install \
|
||||||
|
&& rm -rf ~/.composer \
|
||||||
|
&& chown -R nginx:nginx .
|
||||||
|
|
||||||
|
VOLUME /var/www/shaarli/data
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/s6-svscan", "/etc/services.d"]
|
||||||
|
CMD []
|
|
@ -1,6 +1,7 @@
|
||||||
user www-data www-data;
|
user nginx nginx;
|
||||||
daemon off;
|
daemon off;
|
||||||
worker_processes 4;
|
worker_processes 4;
|
||||||
|
pid /var/run/nginx.pid;
|
||||||
|
|
||||||
events {
|
events {
|
||||||
worker_connections 768;
|
worker_connections 768;
|
||||||
|
@ -59,7 +60,7 @@ http {
|
||||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||||
|
|
||||||
# filter and proxy PHP requests to PHP-FPM
|
# filter and proxy PHP requests to PHP-FPM
|
||||||
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
fastcgi_pass unix:/var/run/php-fpm.sock;
|
||||||
fastcgi_index index.php;
|
fastcgi_index index.php;
|
||||||
include fastcgi.conf;
|
include fastcgi.conf;
|
||||||
}
|
}
|
16
docker/alpine/php-fpm.conf
Normal file
16
docker/alpine/php-fpm.conf
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
[global]
|
||||||
|
daemonize = no
|
||||||
|
|
||||||
|
[www]
|
||||||
|
user = nginx
|
||||||
|
group = nginx
|
||||||
|
listen.owner = nginx
|
||||||
|
listen.group = nginx
|
||||||
|
catch_workers_output = yes
|
||||||
|
listen = /var/run/php-fpm.sock
|
||||||
|
pm = dynamic
|
||||||
|
pm.max_children = 20
|
||||||
|
pm.start_servers = 1
|
||||||
|
pm.min_spare_servers = 1
|
||||||
|
pm.max_spare_servers = 3
|
||||||
|
pm.max_requests = 2048
|
2
docker/alpine/services.d/.s6-svscan/finish
Executable file
2
docker/alpine/services.d/.s6-svscan/finish
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/sh
|
||||||
|
/bin/true
|
2
docker/alpine/services.d/nginx/run
Executable file
2
docker/alpine/services.d/nginx/run
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/execlineb -P
|
||||||
|
nginx
|
2
docker/alpine/services.d/php-fpm/run
Executable file
2
docker/alpine/services.d/php-fpm/run
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
#!/bin/execlineb -P
|
||||||
|
php-fpm7 -F
|
|
@ -1,37 +0,0 @@
|
||||||
FROM debian:jessie
|
|
||||||
MAINTAINER Shaarli Community
|
|
||||||
|
|
||||||
ENV TERM dumb
|
|
||||||
RUN apt-get update \
|
|
||||||
&& apt-get install --no-install-recommends -y \
|
|
||||||
ca-certificates \
|
|
||||||
curl \
|
|
||||||
nginx-light \
|
|
||||||
php5-curl \
|
|
||||||
php5-fpm \
|
|
||||||
php5-gd \
|
|
||||||
php5-intl \
|
|
||||||
supervisor \
|
|
||||||
&& apt-get clean
|
|
||||||
|
|
||||||
RUN sed -i 's/post_max_size.*/post_max_size = 10M/' /etc/php5/fpm/php.ini
|
|
||||||
RUN sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini
|
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
|
||||||
COPY supervised.conf /etc/supervisor/conf.d/supervised.conf
|
|
||||||
|
|
||||||
ADD https://getcomposer.org/composer.phar /usr/local/bin/composer
|
|
||||||
RUN chmod 755 /usr/local/bin/composer
|
|
||||||
|
|
||||||
WORKDIR /var/www
|
|
||||||
RUN curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xzf - \
|
|
||||||
&& mv Shaarli-master shaarli \
|
|
||||||
&& cd shaarli \
|
|
||||||
&& composer --prefer-dist --no-dev install
|
|
||||||
RUN rm -rf html \
|
|
||||||
&& chown -R www-data:www-data .
|
|
||||||
|
|
||||||
VOLUME /var/www/shaarli/data
|
|
||||||
|
|
||||||
EXPOSE 80
|
|
||||||
|
|
||||||
CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
|
|
|
@ -1,13 +0,0 @@
|
||||||
[program:php5-fpm]
|
|
||||||
command=/usr/sbin/php5-fpm -F
|
|
||||||
priority=5
|
|
||||||
autostart=true
|
|
||||||
autorestart=true
|
|
||||||
|
|
||||||
[program:nginx]
|
|
||||||
command=/usr/sbin/nginx
|
|
||||||
priority=10
|
|
||||||
autostart=true
|
|
||||||
autorestart=true
|
|
||||||
stdout_events_enabled=true
|
|
||||||
stderr_events_enabled=true
|
|
Loading…
Reference in a new issue