From 5c765c1dbecdd3a6e591c3215b0fa3ed0b6fe8f5 Mon Sep 17 00:00:00 2001 From: Alexis Date: Mon, 13 Jul 2026 19:25:35 +0200 Subject: [PATCH] Initial setup --- .gitignore | 4 +++ Caddyfile | 10 +++++++ README.md | 12 ++++++++- compose.yaml | 65 ++++++++++++++++++++++++++++++++++++++++++++++ php/8.1/Dockerfile | 8 ++++++ php/8.1/php.ini | 6 +++++ php/8.2/Dockerfile | 8 ++++++ php/8.2/php.ini | 6 +++++ php/8.3/Dockerfile | 8 ++++++ php/8.3/php.ini | 6 +++++ php/8.4/Dockerfile | 8 ++++++ php/8.4/php.ini | 6 +++++ sites/.gitkeep | 0 13 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Caddyfile create mode 100644 compose.yaml create mode 100644 php/8.1/Dockerfile create mode 100644 php/8.1/php.ini create mode 100644 php/8.2/Dockerfile create mode 100644 php/8.2/php.ini create mode 100644 php/8.3/Dockerfile create mode 100644 php/8.3/php.ini create mode 100644 php/8.4/Dockerfile create mode 100644 php/8.4/php.ini create mode 100644 sites/.gitkeep diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d24ea74 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/sites/** +!/sites/.gitkeep + +/mysql/ diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..bbfb8b5 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,10 @@ +http://adila-one-page.localhost { + root * /var/www/adila-one-page/public + encode gzip + php_fastcgi php83:9000 + file_server +} + +http://pma.localhost { + reverse_proxy phpmyadmin:80 +} diff --git a/README.md b/README.md index 61ea4fc..3cb6bc0 100644 --- a/README.md +++ b/README.md @@ -1 +1,11 @@ -# docked-wp +# Docked WP +Docker-based setup for Wordpress-based (and other platforms) web dev. + +## Caddy +```shell +# Reload config +$> sudo docker compose exec caddy caddy reload --config /etc/caddy/Caddyfile + +# Validate config +$> sudo docker compose run --rm caddy caddy validate --config /etc/caddy/Caddyfile +``` diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..6059b40 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,65 @@ +services: + caddy: + image: caddy:2-alpine + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile + - ./sites:/var/www + - caddy_data:/data + - caddy_config:/config + networks: [web] + + php81: + build: + context: ./php/8.1 + dockerfile: Dockerfile + volumes: + - ./sites:/var/www + networks: [web] + + php82: + build: + context: ./php/8.2 + dockerfile: Dockerfile + volumes: + - ./sites:/var/www + networks: [web] + + php83: + build: + context: ./php/8.3 + dockerfile: Dockerfile + volumes: + - ./sites:/var/www + networks: [web] + + php84: + build: + context: ./php/8.4 + dockerfile: Dockerfile + volumes: + - ./sites:/var/www + networks: [web] + + mariadb: + image: mariadb:11 + environment: + MARIADB_ROOT_PASSWORD: root + volumes: + - ./mysql:/var/lib/mysql + networks: [web] + + phpmyadmin: + image: phpmyadmin:latest + environment: + PMA_HOST: mariadb + networks: [web] + +networks: + web: + +volumes: + caddy_data: + caddy_config: diff --git a/php/8.1/Dockerfile b/php/8.1/Dockerfile new file mode 100644 index 0000000..78ea3cb --- /dev/null +++ b/php/8.1/Dockerfile @@ -0,0 +1,8 @@ +FROM php:8.1-fpm-alpine + +RUN apk add --no-cache \ + libpng-dev libzip-dev libjpeg-turbo-dev freetype-dev icu-dev libxml2-dev oniguruma-dev curl-dev \ + && docker-php-ext-configure gd --with-jpeg --with-freetype \ + && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql zip intl exif mbstring curl xml soap bcmath opcache + +COPY php.ini /usr/local/etc/php/conf.d/custom.ini \ No newline at end of file diff --git a/php/8.1/php.ini b/php/8.1/php.ini new file mode 100644 index 0000000..a20ce99 --- /dev/null +++ b/php/8.1/php.ini @@ -0,0 +1,6 @@ +upload_max_filesize = 128M +post_max_size = 128M +memory_limit = 256M +max_execution_time = 300 +opcache.enable = 1 +opcache.validate_timestamps = 1 \ No newline at end of file diff --git a/php/8.2/Dockerfile b/php/8.2/Dockerfile new file mode 100644 index 0000000..f4359e0 --- /dev/null +++ b/php/8.2/Dockerfile @@ -0,0 +1,8 @@ +FROM php:8.2-fpm-alpine + +RUN apk add --no-cache \ + libpng-dev libzip-dev libjpeg-turbo-dev freetype-dev icu-dev libxml2-dev oniguruma-dev curl-dev \ + && docker-php-ext-configure gd --with-jpeg --with-freetype \ + && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql zip intl exif mbstring curl xml soap bcmath opcache + +COPY php.ini /usr/local/etc/php/conf.d/custom.ini \ No newline at end of file diff --git a/php/8.2/php.ini b/php/8.2/php.ini new file mode 100644 index 0000000..a20ce99 --- /dev/null +++ b/php/8.2/php.ini @@ -0,0 +1,6 @@ +upload_max_filesize = 128M +post_max_size = 128M +memory_limit = 256M +max_execution_time = 300 +opcache.enable = 1 +opcache.validate_timestamps = 1 \ No newline at end of file diff --git a/php/8.3/Dockerfile b/php/8.3/Dockerfile new file mode 100644 index 0000000..a3486d9 --- /dev/null +++ b/php/8.3/Dockerfile @@ -0,0 +1,8 @@ +FROM php:8.3-fpm-alpine + +RUN apk add --no-cache \ + libpng-dev libzip-dev libjpeg-turbo-dev freetype-dev icu-dev libxml2-dev oniguruma-dev curl-dev \ + && docker-php-ext-configure gd --with-jpeg --with-freetype \ + && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql zip intl exif mbstring curl xml soap bcmath opcache + +COPY php.ini /usr/local/etc/php/conf.d/custom.ini \ No newline at end of file diff --git a/php/8.3/php.ini b/php/8.3/php.ini new file mode 100644 index 0000000..a20ce99 --- /dev/null +++ b/php/8.3/php.ini @@ -0,0 +1,6 @@ +upload_max_filesize = 128M +post_max_size = 128M +memory_limit = 256M +max_execution_time = 300 +opcache.enable = 1 +opcache.validate_timestamps = 1 \ No newline at end of file diff --git a/php/8.4/Dockerfile b/php/8.4/Dockerfile new file mode 100644 index 0000000..3430752 --- /dev/null +++ b/php/8.4/Dockerfile @@ -0,0 +1,8 @@ +FROM php:8.4-fpm-alpine + +RUN apk add --no-cache \ + libpng-dev libzip-dev libjpeg-turbo-dev freetype-dev icu-dev libxml2-dev oniguruma-dev curl-dev \ + && docker-php-ext-configure gd --with-jpeg --with-freetype \ + && docker-php-ext-install -j$(nproc) gd mysqli pdo pdo_mysql zip intl exif mbstring curl xml soap bcmath opcache + +COPY php.ini /usr/local/etc/php/conf.d/custom.ini \ No newline at end of file diff --git a/php/8.4/php.ini b/php/8.4/php.ini new file mode 100644 index 0000000..a20ce99 --- /dev/null +++ b/php/8.4/php.ini @@ -0,0 +1,6 @@ +upload_max_filesize = 128M +post_max_size = 128M +memory_limit = 256M +max_execution_time = 300 +opcache.enable = 1 +opcache.validate_timestamps = 1 \ No newline at end of file diff --git a/sites/.gitkeep b/sites/.gitkeep new file mode 100644 index 0000000..e69de29