From 1be8276ed97cef78a60a07fce002fde38a4fc090 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Mon, 17 Apr 2023 11:44:13 +0200 Subject: Add Dockerfile and instructions for docker-compose --- Dockerfile | 18 ++++++++++++++++++ Readme.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 Dockerfile 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 +``` -- cgit v1.2.3