diff options
-rw-r--r-- | Dockerfile | 18 | ||||
-rw-r--r-- | Readme.md | 54 |
2 files changed, 72 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2216c30 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM composer AS composer + +COPY composer.* /app + +RUN composer install \ + --optimize-autoloader \ + --no-interaction \ + --no-progress + + +FROM php:fpm-alpine as php + +COPY --from=composer /app/vendor /app/vendor +COPY public /app/public +COPY src /app/src + + +FROM php as default @@ -71,3 +71,57 @@ included if exists in subsequent config folders 1. create `$pluginName` directory in $pluginsFolder 2. create `Plugin.php` with `FlatFileForms\Plugins\$pluginName` namespace and `Plugin` class 3. write code in `__construct` method + + +## Docker + +*docker-compose.yml* +```yaml +version: "3.7" + +services: + app: + build: . + volumes: + - "./config.yaml:/app/config.yaml:ro" + - "./content:/app/content" + - "./plugins:/app/plugins" + + nginx: + image: nginx:alpine + ports: + - "8080:80" + environment: + - "PHP_SERVICE_DOCUMENT_ROOT=/app/public" + - "PHP_SERVICE_NAME=app" + - "PHP_SERVICE_PORT=9000" + volumes: + - "./default.conf.template:/etc/nginx/templates/default.conf.template" +``` + +*default.conf.template* +```nginx +server { + location / { + try_files $uri $uri/ /index.php?$args; + } + + location ~ \.php$ { + root ${PHP_SERVICE_DOCUMENT_ROOT}; # ex.: /app/public + + fastcgi_pass ${PHP_SERVICE_NAME}:${PHP_SERVICE_PORT}; # ex.: php:9000 + + include fastcgi.conf; + } +} +``` + +then run + +``` +touch config.yaml # copy from config.example.yaml +mkdir content +mkdir plugins + +docker-compose up -d +``` |