summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile18
-rw-r--r--Readme.md54
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
diff --git a/Readme.md b/Readme.md
index be9400d..fe7b71f 100644
--- a/Readme.md
+++ b/Readme.md
@@ -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
+```