]> git.immae.eu Git - github/shaarli/Shaarli.git/commitdiff
Docker: move Dockerfiles to the main repository 423/head
authorVirtualTam <virtualtam@flibidi.net>
Thu, 24 Dec 2015 16:17:46 +0000 (17:17 +0100)
committerVirtualTam <virtualtam@flibidi.net>
Sat, 2 Jan 2016 18:01:33 +0000 (19:01 +0100)
Relates to #420

Fixes:
- [all] remove Nginx' 'server_name' attribute
- [dev] create the phpinfo() script from the Dockerfile

Modifications:
- [all] remove documentation/guide (to be added to the wiki)
- [all] update maintainer information
- [prod] differentiate 'master' (:latest) and 'stable' (:stable) images

Signed-off-by: VirtualTam <virtualtam@flibidi.net>
14 files changed:
.gitattributes
docker/.htaccess [new file with mode: 0644]
docker/development/Dockerfile [new file with mode: 0644]
docker/development/IMAGE.md [new file with mode: 0644]
docker/development/nginx.conf [new file with mode: 0644]
docker/development/supervised.conf [new file with mode: 0644]
docker/production/Dockerfile [new file with mode: 0644]
docker/production/IMAGE.md [new file with mode: 0644]
docker/production/nginx.conf [new file with mode: 0644]
docker/production/stable/Dockerfile [new file with mode: 0644]
docker/production/stable/IMAGE.md [new file with mode: 0644]
docker/production/stable/nginx.conf [new file with mode: 0644]
docker/production/stable/supervised.conf [new file with mode: 0644]
docker/production/supervised.conf [new file with mode: 0644]

index e616be284b34b6e82d96fac112f4da197480ce8d..aaf6a39e94aaa8c5e3faa59ac8b0d54bd17a372e 100644 (file)
@@ -2,11 +2,13 @@
 *       text=auto eol=lf
 
 # Ensure sources are processed
+*.conf  text
 *.css   text
 *.html  text diff=html
 *.js    text
 *.md    text
 *.php   text diff=php
+Dockerfile      text
 
 # Do not alter images nor minified scripts
 *.ico           binary
@@ -22,6 +24,7 @@
 composer.json   export-ignore
 doc/**/*.json   export-ignore
 doc/**/*.md     export-ignore
+docker/         export-ignore
 Doxyfile        export-ignore
 Makefile        export-ignore
 phpunit.xml     export-ignore
diff --git a/docker/.htaccess b/docker/.htaccess
new file mode 100644 (file)
index 0000000..b584d98
--- /dev/null
@@ -0,0 +1,2 @@
+Allow from none
+Deny from all
diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile
new file mode 100644 (file)
index 0000000..2ed59b8
--- /dev/null
@@ -0,0 +1,28 @@
+FROM debian:jessie
+MAINTAINER Shaarli Community
+
+RUN apt-get update \
+    && apt-get install -y \
+       nginx-light php5-fpm php5-gd supervisor \
+       git nano
+
+ADD https://getcomposer.org/composer.phar /usr/local/bin/composer
+RUN chmod 755 /usr/local/bin/composer
+
+COPY nginx.conf /etc/nginx/nginx.conf
+COPY supervised.conf /etc/supervisor/conf.d/supervised.conf
+RUN echo "<?php phpinfo(); ?>" > /var/www/index.php
+
+WORKDIR /var/www
+RUN rm -rf html \
+    && git clone https://github.com/shaarli/Shaarli.git shaarli \
+    && chown -R www-data:www-data .
+
+WORKDIR /var/www/shaarli
+RUN composer install
+
+VOLUME /var/www/shaarli/data
+
+EXPOSE 80
+
+CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
diff --git a/docker/development/IMAGE.md b/docker/development/IMAGE.md
new file mode 100644 (file)
index 0000000..e2ff0f0
--- /dev/null
@@ -0,0 +1,10 @@
+## 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/)
diff --git a/docker/development/nginx.conf b/docker/development/nginx.conf
new file mode 100644 (file)
index 0000000..cda09b5
--- /dev/null
@@ -0,0 +1,64 @@
+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;
+
+    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 /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;
+            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 ~ (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;
+        }
+    }
+}
diff --git a/docker/development/supervised.conf b/docker/development/supervised.conf
new file mode 100644 (file)
index 0000000..5acd979
--- /dev/null
@@ -0,0 +1,13 @@
+[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
diff --git a/docker/production/Dockerfile b/docker/production/Dockerfile
new file mode 100644 (file)
index 0000000..3db4eb5
--- /dev/null
@@ -0,0 +1,20 @@
+FROM debian:jessie
+MAINTAINER Shaarli Community
+
+RUN apt-get update \
+    && apt-get install -y curl nginx-light php5-fpm php5-gd supervisor
+
+COPY nginx.conf /etc/nginx/nginx.conf
+COPY supervised.conf /etc/supervisor/conf.d/supervised.conf
+
+WORKDIR /var/www
+RUN rm -rf html \
+    && curl -L https://github.com/shaarli/Shaarli/archive/master.tar.gz | tar xvzf - \
+    && mv Shaarli-master shaarli \
+    && chown -R www-data:www-data shaarli
+
+VOLUME /var/www/shaarli/data
+
+EXPOSE 80
+
+CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
diff --git a/docker/production/IMAGE.md b/docker/production/IMAGE.md
new file mode 100644 (file)
index 0000000..6f827b3
--- /dev/null
@@ -0,0 +1,5 @@
+## 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)
diff --git a/docker/production/nginx.conf b/docker/production/nginx.conf
new file mode 100644 (file)
index 0000000..e23c458
--- /dev/null
@@ -0,0 +1,56 @@
+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;
+
+    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 ~ (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;
+        }
+    }
+}
diff --git a/docker/production/stable/Dockerfile b/docker/production/stable/Dockerfile
new file mode 100644 (file)
index 0000000..2bb3948
--- /dev/null
@@ -0,0 +1,20 @@
+FROM debian:jessie
+MAINTAINER Shaarli Community
+
+RUN apt-get update \
+    && apt-get install -y curl nginx-light php5-fpm php5-gd supervisor
+
+COPY nginx.conf /etc/nginx/nginx.conf
+COPY supervised.conf /etc/supervisor/conf.d/supervised.conf
+
+WORKDIR /var/www
+RUN rm -rf html \
+    && curl -L https://github.com/shaarli/Shaarli/archive/stable.tar.gz | tar xvzf - \
+    && mv Shaarli-stable shaarli \
+    && chown -R www-data:www-data shaarli
+
+VOLUME /var/www/shaarli/data
+
+EXPOSE 80
+
+CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/supervisord.conf"]
diff --git a/docker/production/stable/IMAGE.md b/docker/production/stable/IMAGE.md
new file mode 100644 (file)
index 0000000..d85b1d7
--- /dev/null
@@ -0,0 +1,5 @@
+## 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)
diff --git a/docker/production/stable/nginx.conf b/docker/production/stable/nginx.conf
new file mode 100644 (file)
index 0000000..e23c458
--- /dev/null
@@ -0,0 +1,56 @@
+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;
+
+    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 ~ (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;
+        }
+    }
+}
diff --git a/docker/production/stable/supervised.conf b/docker/production/stable/supervised.conf
new file mode 100644 (file)
index 0000000..5acd979
--- /dev/null
@@ -0,0 +1,13 @@
+[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
diff --git a/docker/production/supervised.conf b/docker/production/supervised.conf
new file mode 100644 (file)
index 0000000..5acd979
--- /dev/null
@@ -0,0 +1,13 @@
+[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