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 "Check file permissions"
|
||||
@echo "----------------------"
|
||||
@for file in `git ls-files`; do \
|
||||
@for file in `git ls-files | grep -v docker`; do \
|
||||
if [ -x $$file ]; then \
|
||||
errors=true; \
|
||||
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;
|
||||
worker_processes 4;
|
||||
pid /var/run/nginx.pid;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
|
@ -59,7 +60,7 @@ http {
|
|||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
|
||||
# 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;
|
||||
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