Add Docker support
This commit is contained in:
35
docker/nginx/conf.d/default.conf
Normal file
35
docker/nginx/conf.d/default.conf
Normal file
@@ -0,0 +1,35 @@
|
||||
server {
|
||||
root /srv/api-platform/web;
|
||||
|
||||
location / {
|
||||
# try to serve file directly, fallback to app.php
|
||||
try_files $uri /index.php$is_args$args;
|
||||
}
|
||||
location ~ ^/index\.php(/|$) {
|
||||
fastcgi_pass php:9000;
|
||||
fastcgi_split_path_info ^(.+\.php)(/.*)$;
|
||||
include fastcgi_params;
|
||||
# When you are using symlinks to link the document root to the
|
||||
# current version of your application, you should pass the real
|
||||
# application path instead of the path to the symlink to PHP
|
||||
# FPM.
|
||||
# Otherwise, PHP's OPcache may not properly detect changes to
|
||||
# your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
|
||||
# for more information).
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
fastcgi_param DOCUMENT_ROOT $realpath_root;
|
||||
# Prevents URIs that include the front controller. This will 404:
|
||||
# http://domain.tld/app.php/some-path
|
||||
# Remove the internal directive to allow URIs like this
|
||||
internal;
|
||||
}
|
||||
|
||||
# return 404 for all other php files not matching the front controller
|
||||
# this prevents access to other php files you don't want to be accessible.
|
||||
location ~ \.php$ {
|
||||
return 404;
|
||||
}
|
||||
|
||||
error_log /var/log/nginx/app_error.log;
|
||||
access_log /var/log/nginx/app_access.log;
|
||||
}
|
||||
17
docker/php/install-composer.sh
Executable file
17
docker/php/install-composer.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
EXPECTED_SIGNATURE=$(wget -q -O - https://composer.github.io/installer.sig)
|
||||
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
|
||||
ACTUAL_SIGNATURE=$(php -r "echo hash_file('SHA384', 'composer-setup.php');")
|
||||
|
||||
if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
|
||||
then
|
||||
>&2 echo 'ERROR: Invalid installer signature'
|
||||
rm composer-setup.php
|
||||
exit 1
|
||||
fi
|
||||
|
||||
php composer-setup.php --quiet
|
||||
RESULT=$?
|
||||
rm composer-setup.php
|
||||
exit $RESULT
|
||||
9
docker/php/php.ini
Normal file
9
docker/php/php.ini
Normal file
@@ -0,0 +1,9 @@
|
||||
apc.enable_cli = 1
|
||||
date.timezone = UTC
|
||||
session.auto_start = Off
|
||||
short_open_tag = Off
|
||||
|
||||
# http://symfony.com/doc/current/performance.html
|
||||
opcache.max_accelerated_files = 20000
|
||||
realpath_cache_size = 4096K
|
||||
realpath_cache_ttl = 600
|
||||
16
docker/php/start.sh
Normal file
16
docker/php/start.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
set -xe
|
||||
|
||||
# Detect the host IP
|
||||
export DOCKER_BRIDGE_IP=$(ip ro | grep default | cut -d' ' -f 3)
|
||||
|
||||
if [ "APP_ENV" = 'prod' ]; then
|
||||
composer install --prefer-dist --no-dev --no-progress --no-suggest --optimize-autoloader --classmap-authoritative
|
||||
else
|
||||
composer install --prefer-dist --no-progress --no-suggest
|
||||
fi
|
||||
|
||||
# Permissions hack because setfacl does not work on Mac and Windows
|
||||
chown -R www-data var
|
||||
|
||||
exec php-fpm
|
||||
Reference in New Issue
Block a user