Skip to content

Instantly share code, notes, and snippets.

@jpetitcolas
Created December 12, 2017 20:47
Show Gist options
  • Save jpetitcolas/78d4e0d5837653951140be6879a3ee34 to your computer and use it in GitHub Desktop.
Save jpetitcolas/78d4e0d5837653951140be6879a3ee34 to your computer and use it in GitHub Desktop.
Docker configuration for Prestashop
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
volumes:
- .:/app
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf
links:
- php
depends_on:
- php
php:
build: config/php
volumes:
- .:/app
user: "${UID}:${GID}"
links:
- db
depends_on:
- db
db:
image: mariadb
volumes:
- ./var/data:/var/lib/mysql
user: "${UID}:${GID}"
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_DATABASE=XXX
- MYSQL_USER=XXX
- MYSQL_PASSWORD=XXX
# config/php/Dockerfile
FROM php:7.0-fpm
RUN apt-get update
RUN apt-get install -y zlib1g-dev && docker-php-ext-install -j$(nproc) zip
RUN \
apt-get install -y libpng-dev libjpeg62-turbo-dev libfreetype6-dev && \
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ && \
docker-php-ext-install -j$(nproc) gd
RUN docker-php-ext-install -j$(nproc) pdo pdo_mysql
RUN apt-get install -y libicu-dev && docker-php-ext-configure intl && docker-php-ext-install -j$(nproc) intl
RUN echo "php_admin_flag[log_errors] = On">>/usr/local/etc/php-fpm.conf
# config/nginx.conf
server {
listen 80;
listen [::]:80;
# TO REPLACE
server_name dev.mycompany.com;
root /app;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
index index.php;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
auth_basic off;
allow all;
log_not_found off;
access_log off;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 1;
gzip_buffers 16 8k;
gzip_http_version 1.0;
gzip_types application/json text/css application/javascript;
rewrite ^/(index\.php.*)$ /$1 last;
rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last;
rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last;
rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last;
rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last;
rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last;
rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last;
rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last;
# TO REPLACE
location /admin291rpbvyr/ {
if (!-e $request_filename) {
# TO REPLACE
rewrite ^/.*$ /adminXXX/index.php last;
}
}
location / {
if (!-e $request_filename) {
rewrite ^/.*$ /index.php last;
}
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.*)$;
try_files $uri =404;
fastcgi_keep_conn on;
include /etc/nginx/fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment