Browse Source

Initial Setup

Christian Kahlau 4 years ago
commit
d59543cef2
12 changed files with 209 additions and 0 deletions
  1. 2 0
      .gitignore
  2. 28 0
      docker-compose.yml
  3. 22 0
      mysql/Dockerfile
  4. 29 0
      mysql/setup.sql
  5. 6 0
      nginx/Dockerfile
  6. 15 0
      nginx/default.site
  7. 4 0
      nginx/proxy_params
  8. 52 0
      nginx/selfsigned.key
  9. 37 0
      nginx/selfsigned.pem
  10. 4 0
      start.bat
  11. 5 0
      wordpress/Dockerfile
  12. 5 0
      wordpress/uploads.ini

+ 2 - 0
.gitignore

@@ -0,0 +1,2 @@
+/mysql/db/**
+/wordpress/html/**

+ 28 - 0
docker-compose.yml

@@ -0,0 +1,28 @@
+version: "3.8"
+services:
+  wordpress:
+    build: ./wordpress
+    environment:
+      WORDPRESS_DB_HOST: "mysql"
+      WORDPRESS_DB_USER: "wp_dev"
+      WORDPRESS_DB_PASSWORD: "zmKHxWvm3zWK6h69ZJHk"
+      WORDPRESS_DB_NAME: "wp_dev"
+    volumes:
+      - ./wordpress/html:/var/www/html
+    links:
+      - mysql
+    # restart: always
+  mysql:
+    build: ./mysql
+    command: --default-authentication-plugin=mysql_native_password
+    volumes:
+      - ./mysql/db:/var/lib/mysql
+    # restart: always
+  nginx:
+    build: ./nginx
+    ports:
+      - 443:443
+      - 80:80
+    links: 
+      - wordpress
+    # restart: always

+ 22 - 0
mysql/Dockerfile

@@ -0,0 +1,22 @@
+FROM mariadb:latest 
+# as builder
+
+# That file does the DB initialization but also runs mysql daemon, by removing the last line it will only init
+# RUN ["sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin/docker-entrypoint.sh"]
+
+# needed for intialization
+ENV MARIADB_ROOT_PASSWORD=zmKHxWvm3zWK6h69ZJHk
+
+COPY setup.sql /docker-entrypoint-initdb.d/
+
+# # Need to change the datadir to something else that /var/lib/mysql because the parent docker file defines it as a volume.
+# # https://docs.docker.com/engine/reference/builder/#volume :
+# #       Changing the volume from within the Dockerfile: If any build steps change the data within the volume after
+# #       it has been declared, those changes will be discarded.
+# RUN ["/usr/local/bin/docker-entrypoint.sh", "mysqld", "--datadir", "/initialized-db", "--aria-log-dir-path", "/initialized-db"]
+
+# RUN ls -lah /initialized-db
+
+# FROM mariadb:latest
+# ENV MARIADB_ROOT_PASSWORD=zmKHxWvm3zWK6h69ZJHk
+# COPY --from=builder /initialized-db /var/lib/mysql

+ 29 - 0
mysql/setup.sql

@@ -0,0 +1,29 @@
+-- phpMyAdmin SQL Dump
+-- version 5.0.1
+-- https://www.phpmyadmin.net/
+--
+-- Host: localhost
+-- Erstellungszeit: 01. Sep 2020 um 15:02
+-- Server-Version: 10.3.23-MariaDB-0+deb10u1
+-- PHP-Version: 7.3.19-1~deb10u1
+
+SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
+SET AUTOCOMMIT = 0;
+START TRANSACTION;
+SET time_zone = "+01:00";
+
+
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+
+--
+-- Datenbank: `_filesharing_dev`
+--
+
+CREATE DATABASE IF NOT EXISTS wp_dev CHARACTER SET utf8mb4;
+CREATE USER 'wp_dev'@'%' IDENTIFIED BY 'zmKHxWvm3zWK6h69ZJHk';
+
+USE wp_dev;
+GRANT ALL PRIVILEGES ON *.* TO 'wp_dev'@'%' IDENTIFIED BY 'zmKHxWvm3zWK6h69ZJHk';

+ 6 - 0
nginx/Dockerfile

@@ -0,0 +1,6 @@
+FROM nginx
+
+COPY ./selfsigned.key /etc/nginx/ssl/
+COPY ./selfsigned.pem /etc/nginx/ssl/
+COPY ./proxy_params /etc/nginx/proxy_params
+COPY ./default.site /etc/nginx/conf.d/default.conf

+ 15 - 0
nginx/default.site

@@ -0,0 +1,15 @@
+server {
+    listen  443 ssl;
+
+    ssl_certificate         /etc/nginx/ssl/selfsigned.pem;
+    ssl_certificate_key     /etc/nginx/ssl/selfsigned.key;
+
+    location / {
+        proxy_pass  http://wordpress:80;
+        include     /etc/nginx/proxy_params;
+    }
+}
+server {
+    listen  80;
+    return 301 https://$host$request_uri;
+}

+ 4 - 0
nginx/proxy_params

@@ -0,0 +1,4 @@
+proxy_set_header Host $http_host;
+proxy_set_header X-Real-IP $remote_addr;
+proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+proxy_set_header X-Forwarded-Proto $scheme;

+ 52 - 0
nginx/selfsigned.key

@@ -0,0 +1,52 @@
+-----BEGIN PRIVATE KEY-----
+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
+TADlR8MkivNLIvFXH+Yfh2MeINxDSg==
+-----END PRIVATE KEY-----

+ 37 - 0
nginx/selfsigned.pem

@@ -0,0 +1,37 @@
+-----BEGIN CERTIFICATE-----
+MIIGXzCCBEegAwIBAgIUMQDSlsYJ9bSC5oKUKrxnIq2eWaMwDQYJKoZIhvcNAQEL
+BQAwgb4xCzAJBgNVBAYTAkRFMRswGQYDVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcx
+EjAQBgNVBAcMCVN0dXR0Z2FydDElMCMGA1UECgwcSG9zdEJCUSBTb2Z0d2FyZSBE
+ZXZlbG9wbWVudDEWMBQGA1UECwwNV29yZHByZXNzIERldjEbMBkGA1UEAwwSd3At
+ZGV2Lmhvc3RiYnEuY29tMSIwIAYJKoZIhvcNAQkBFhNob3N0YmJxQGhvc3RiYnEu
+Y29tMB4XDTIxMDkxMTE2MTYxMVoXDTIyMDkxMTE2MTYxMVowgb4xCzAJBgNVBAYT
+AkRFMRswGQYDVQQIDBJCYWRlbi1XdWVydHRlbWJlcmcxEjAQBgNVBAcMCVN0dXR0
+Z2FydDElMCMGA1UECgwcSG9zdEJCUSBTb2Z0d2FyZSBEZXZlbG9wbWVudDEWMBQG
+A1UECwwNV29yZHByZXNzIERldjEbMBkGA1UEAwwSd3AtZGV2Lmhvc3RiYnEuY29t
+MSIwIAYJKoZIhvcNAQkBFhNob3N0YmJxQGhvc3RiYnEuY29tMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEA092v/kCisfsnBUW5Vav4iMFVs16nhPUVXmXI
+dEnhM2lTrCAH1BfW9/eMaZaBk+xMm11i5FAk7VrbFnpo6gAhaErpA0H/1tHANjzU
+0fK5J2yVLi3y6BqC055af5dcpUnbKRU5pr7fmhFB2E4rzeVX9lonrsIcFI4lS347
+ra+Rg8u1y/zPxti5e5f8eh9kn3qJ7mM9vLoBvUdaQDN+UQqh5MLxylvDY/doXVs9
+7cJKLabxMoJW/JNroHOfv2HCJWGQlMTFDG2K1jZVX1pP7nmWwH/DFCui9GdwL21L
+J/w6MjWJf3WTq+Ki+BrCTgfh1gLS7xmU5yaPahv1iGoDongwISJ3cZ8YP99zatEq
+6lohFqpGTj19qqf6tFH5MVHsl97LcOkIySzx/g9NhjFKpx2YD5Qm9YAJCFWbAh1e
+sKCJfuEPgmZnZVET3ORVSiX/kVw09g4Ptr3qM4oSET3aOU2G4UoC7Zqh+O4/6ci3
+HA8+TUP/CieUFk6CkcjLTiijTs/eNsuJS3CciXNAwDzbQQUSD6f9oLymOD2EdgG4
+DDCcne9tkmYqd36AINBMVelDIlsLHtH5jbbl1WpyEA1T25H3uoASQFGhVJSimaWV
+y/e1jJhOV/Bexy+9c5KUz3CatzGDBTLnoEXr6YCzYCyi5B8aDyhpyFzK6N/HXSv6
+llJ8/TUCAwEAAaNTMFEwHQYDVR0OBBYEFBJsWMonTYYQ/ta9pgkETQNFWWZgMB8G
+A1UdIwQYMBaAFBJsWMonTYYQ/ta9pgkETQNFWWZgMA8GA1UdEwEB/wQFMAMBAf8w
+DQYJKoZIhvcNAQELBQADggIBAAvn+ueDo7JbswQUqo2RWu2t06uZSWRbhEPhh8CR
+WtleCwMMFoJFCHVIqqtrDIdmVIi8EbPXmVUGxhFyuPZ8Ic/L4paHY0WWZ06hhmEZ
+Uiibt2r/z90oUvZyS81JnJ0LHJfIe1q86e13rpnTdFyVQlHD/fSXvFtG01KjS+FN
+ixfP2uiFR8oHRplGh5U8e4MbgBeGOOM2h+dcb9VfFZnTSJgrRMH4faACo/lTOcK+
+aqioY8heXGiiCvZmHnGYr9xtcKibyKS3q1zPG4hLarnmRWJF2i/pDZZHZqU128L7
+jw7Uwkuv+HXjvVv8qBtLS0LeUGi2WApDkSE8ZHkbEhcR7vf6b98s9P6lViEoLWFC
+Fyf81pbC9hq8C4l+isf/WR9VEUdEuphlPwKUoH6+x7F+IUPazcq9mdAETmDjXEki
+A/cGDQVYdk75SwaitxXfFnLhj9xTIWAAju/mkfnAU9HlqsVNO0U1hh+JooTED9Cx
+5DuGPFGnLjrmMBdW8RtGpywuLFQKXzn6jsCTP+S3rt+28UfsrP1pIfw/wb+bxcDc
+VY4UuoDYmBash6HscNFkQcmdGDvyCwCyYEmQ+qGsEX1JKJMt3SuOPrUGa07eg9UK
+bKQLgYj25sDXwtMDTTbWYrsnp1qsXwfOmwpYuppmRqbgA1tZ0cRYpbvwhOQxTiBp
+KUbP
+-----END CERTIFICATE-----

+ 4 - 0
start.bat

@@ -0,0 +1,4 @@
+@echo off
+mkdir ".\wordpress\html"
+mkdir ".\mysql\db"
+docker compose up -d --build --force-recreate

+ 5 - 0
wordpress/Dockerfile

@@ -0,0 +1,5 @@
+FROM wordpress
+
+COPY ./uploads.ini /usr/local/etc/php/conf.d/uploads.ini
+
+RUN service apache2 restart

+ 5 - 0
wordpress/uploads.ini

@@ -0,0 +1,5 @@
+file_uploads = On
+memory_limit = 1024M
+upload_max_filesize = 1024M
+post_max_size = 1024M
+max_execution_time = 1800