access_log /var/log/nginx/shaarli.access.log;
error_log /var/log/nginx/shaarli.error.log;
- location /phpinfo/ {
- # add a PHP info page for convenience
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /var/www/index.php;
- include fastcgi_params;
- }
-
location ~ /\. {
# deny access to dotfiles
access_log off;
alias /var/www/shaarli/images/favicon.ico;
}
+ location / {
+ # Slim - rewrite URLs
+ try_files $uri /index.php$is_args$args;
+ }
+
location ~ (index)\.php$ {
+ # Slim - split URL path into (script_filename, path_info)
+ try_files $uri =404;
+ fastcgi_split_path_info ^(.+\.php)(/.+)$;
+
# filter and proxy PHP requests to PHP-FPM
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
--- /dev/null
+# Docker-ignore
+# Note: .git/ is kept for HTML documentation generation
+tests
+
+# Shaarli runtime resources
+cache/*
+data/*
+pagecache/*
+tmp/*
+
+# Eclipse project files
+.settings
+.buildpath
+.project
+
+# Raintpl generated pages
+*.rtpl.php
+
+# 3rd-party dependencies
+composer.lock
+vendor/
+
+# Release archives
+*.tar
+*.zip
+
+# Development and test resources
+coverage
+doxygen
+sandbox
+phpmd.html
+
+# User plugin configuration
+plugins/*/config.php
.travis.yml export-ignore
doc/**/*.json export-ignore
doc/**/*.md export-ignore
-docker/ export-ignore
+.docker/ export-ignore
+.dockerignore export-ignore
+Dockerfile export-ignore
Doxyfile export-ignore
Makefile export-ignore
phpunit.xml export-ignore
- 5.6
- 5.5
- 5.4
- - 5.3
+ # - 5.3 # Not supported by Travis CI
install:
- composer self-update
- composer install --prefer-dist
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).
+## [v0.8.7](https://github.com/shaarli/Shaarli/releases/tag/v0.8.7) - UNPUBLISHED
+### Changed
+- Build the Docker image from the local Git sources
+
+### Removed
+- Disable PHP 5.3 Travis build (unsupported)
-## [v0.8.6](https://github.com/shaarli/Shaarli/releases/tag/v0.8.5) - 2018-02-19
+## [v0.8.6](https://github.com/shaarli/Shaarli/releases/tag/v0.8.6) - 2018-02-19
### Changed
- Run version check tests against the 'stable' branch
--- /dev/null
+# Stage 1:
+# - Get Shaarli sources
+# - Build documentation
+FROM dalibo/pandocker:stable as docs
+ADD . /pandoc/shaarli
+RUN cd /pandoc/shaarli \
+ && make htmldoc \
+ && rm -rf .git
+
+# Stage 2:
+# - Resolve PHP dependencies with Composer
+FROM composer:latest as composer
+COPY --from=docs /pandoc/shaarli /app/shaarli
+RUN cd shaarli \
+ && composer --prefer-dist --no-dev install
+
+# Stage 3:
+# - Shaarli image
+FROM debian:jessie
+LABEL 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 \
+ && sed -i 's/upload_max_filesize.*/upload_max_filesize = 10M/' /etc/php5/fpm/php.ini
+
+COPY .docker/nginx.conf /etc/nginx/nginx.conf
+COPY .docker/supervised.conf /etc/supervisor/conf.d/supervised.conf
+
+WORKDIR /var/www
+COPY --from=composer /app/shaarli shaarli
+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"]
# - install Xdebug for PHPUnit code coverage reports:
# - see http://xdebug.org/docs/install
# - enable in php.ini
+SHELL := /bin/bash
BIN = vendor/bin
PHP_SOURCE = index.php application tests plugins
htmlpages:
@for file in `find doc/ -maxdepth 1 -name "*.md"`; do \
base=`basename $$file .md`; \
- sed -i "1i #$${base//-/ }" $$file; \
+ sed -i "1i # $${base//-/ }" $$file; \
awk 'BEGIN { FS = "[\\[\\]]{2}" }'\
'm = /\[/ { t=$$2; gsub(/ /, "-", $$2); print $$1"["t"]("$$2".html)"$$3 }'\
'!m { print $$0 }' $$file > doc/tmp.md; \
mv doc/tmp.md $$file; \
- pandoc -f markdown_github -t html5 -s \
+ pandoc -f gfm \
+ -t html5 \
+ -s \
-c "github-markdown.css" \
- -T Shaarli -M pagetitle:"$${base//-/ }" -B doc/sidebar.html \
+ -T Shaarli \
+ -M pagetitle:"$${base//-/ }" \
+ -B doc/sidebar.html \
-o doc/$$base.html $$file; \
done;
+++ /dev/null
-FROM debian:jessie
-MAINTAINER Shaarli Community
-
-ENV TERM dumb
-RUN apt-get update \
- && apt-get install --no-install-recommends -y \
- ca-certificates \
- nginx-light \
- php5-curl \
- php5-fpm \
- php5-gd \
- php5-intl \
- supervisor \
- git \
- nano \
- && 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 git clone https://github.com/shaarli/Shaarli.git shaarli \
- && cd shaarli \
- && composer --prefer-dist install
-RUN rm -rf html \
- && echo "<?php phpinfo(); ?>" > index.php \
- && chown -R www-data:www-data .
-
-VOLUME /var/www/shaarli/data
-
-EXPOSE 80
-
-CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
+++ /dev/null
-## shaarli:dev
-- [Debian 8 Jessie](https://hub.docker.com/_/debian/)
-- [PHP5-FPM](http://php-fpm.org/)
-- [Nginx](http://nginx.org/)
-- [Shaarli](https://github.com/shaarli/Shaarli)
-
-### Development tools
-- [composer](https://getcomposer.org/)
-- [git](http://git-scm.com/)
-- [nano](http://www.nano-editor.org/)
+++ /dev/null
-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"]
+++ /dev/null
-## shaarli:latest
-- [Debian 8 Jessie](https://hub.docker.com/_/debian/)
-- [PHP5-FPM](http://php-fpm.org/)
-- [Nginx](http://nginx.org/)
-- [Shaarli](https://github.com/shaarli/Shaarli)
+++ /dev/null
-user www-data www-data;
-daemon off;
-worker_processes 4;
-
-events {
- worker_connections 768;
-}
-
-http {
- include mime.types;
- default_type application/octet-stream;
- keepalive_timeout 20;
-
- client_max_body_size 10m;
-
- index index.html index.php;
-
- server {
- listen 80;
- root /var/www/shaarli;
-
- access_log /var/log/nginx/shaarli.access.log;
- error_log /var/log/nginx/shaarli.error.log;
-
- location ~ /\. {
- # deny access to dotfiles
- access_log off;
- log_not_found off;
- deny all;
- }
-
- location ~ ~$ {
- # deny access to temp editor files, e.g. "script.php~"
- access_log off;
- log_not_found off;
- deny all;
- }
-
- location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
- # cache static assets
- expires max;
- add_header Pragma public;
- add_header Cache-Control "public, must-revalidate, proxy-revalidate";
- }
-
- location = /favicon.ico {
- # serve the Shaarli favicon from its custom location
- alias /var/www/shaarli/images/favicon.ico;
- }
-
- location ~ (index)\.php$ {
- # filter and proxy PHP requests to PHP-FPM
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
-
- location ~ \.php$ {
- # deny access to all other PHP scripts
- deny all;
- }
- }
-}
+++ /dev/null
-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/stable.tar.gz | tar xzf - \
- && mv Shaarli-stable 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"]
+++ /dev/null
-## shaarli:stable
-- [Debian 8 Jessie](https://hub.docker.com/_/debian/)
-- [PHP5-FPM](http://php-fpm.org/)
-- [Nginx](http://nginx.org/)
-- [Shaarli (stable)](https://github.com/shaarli/Shaarli/tree/stable)
+++ /dev/null
-user www-data www-data;
-daemon off;
-worker_processes 4;
-
-events {
- worker_connections 768;
-}
-
-http {
- include mime.types;
- default_type application/octet-stream;
- keepalive_timeout 20;
-
- client_max_body_size 10m;
-
- index index.html index.php;
-
- server {
- listen 80;
- root /var/www/shaarli;
-
- access_log /var/log/nginx/shaarli.access.log;
- error_log /var/log/nginx/shaarli.error.log;
-
- location ~ /\. {
- # deny access to dotfiles
- access_log off;
- log_not_found off;
- deny all;
- }
-
- location ~ ~$ {
- # deny access to temp editor files, e.g. "script.php~"
- access_log off;
- log_not_found off;
- deny all;
- }
-
- location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
- # cache static assets
- expires max;
- add_header Pragma public;
- add_header Cache-Control "public, must-revalidate, proxy-revalidate";
- }
-
- location = /favicon.ico {
- # serve the Shaarli favicon from its custom location
- alias /var/www/shaarli/images/favicon.ico;
- }
-
- location ~ (index)\.php$ {
- # filter and proxy PHP requests to PHP-FPM
- fastcgi_pass unix:/var/run/php5-fpm.sock;
- fastcgi_index index.php;
- include fastcgi.conf;
- }
-
- location ~ \.php$ {
- # deny access to all other PHP scripts
- deny all;
- }
- }
-}
+++ /dev/null
-[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
+++ /dev/null
-[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