diff options
-rw-r--r-- | .env.example | 9 | ||||
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | Dockerfile | 3 | ||||
-rw-r--r-- | docker-compose.yml | 61 | ||||
-rw-r--r-- | docker-wp.example.ini | 5 | ||||
-rwxr-xr-x | wpcli | 1 |
6 files changed, 83 insertions, 0 deletions
diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..51d8f52 --- /dev/null +++ b/.env.example @@ -0,0 +1,9 @@ +DOMAIN_1=example.org +DOMAIN_2=example.de +TRAEFIK_NETWORK=traefik-public +MYSQL_ROOT_PASSWORD=123456 +MYSQL_PASSWORD=123456 +MYSQL_DATABASE=wordpress +MYSQL_USER=wordpress +BASICAUTH_USER=admin +BASICAUTH_PASSWORD= diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e745936 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.env +/db +/data +docker-wp.ini diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2a0c8e4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM wordpress:latest + +COPY docker-wp.ini "$PHP_INI_DIR/conf.d/" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c237c8a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,61 @@ +version: '3' + +services: + db: + image: mysql:5.7 + restart: always + volumes: + - "./db:/var/lib/mysql" + environment: + - "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + networks: + - internal + + app: + build: . + restart: always + depends_on: + - db + volumes: + - "./data:/var/www/html" + environment: + - "WORDPRESS_DB_HOST=db" + - "WORDPRESS_DB_USER=${MYSQL_USER}" + - "WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD}" + - "WORDPRESS_DB_NAME=${MYSQL_DATABASE}" + #- "WORDPRESS_DEBUG=1" + networks: + - internal + - traefik-public + labels: + - "traefik.enable=true" + - "traefik.docker.network=${TRAEFIK_NETWORK}" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.rule=Host(`${DOMAIN_1}`) || Host(`${DOMAIN_2}`)" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.entrypoints=websecure" + - "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.tls.certresolver=letsencrypt" + #- "traefik.http.routers.${COMPOSE_PROJECT_NAME}-app.middlewares=${COMPOSE_PROJECT_NAME}-basicauth" + #- "traefik.http.middlewares.${COMPOSE_PROJECT_NAME}-basicauth.basicauth.users=${BASISAUTH_USER}:${BASICAUTH_PASSWORD}" + + wpcli: + image: wordpress:cli + links: + - db + volumes: + - "./data:/var/www/html" + environment: + - "WORDPRESS_DB_HOST=db" + - "WORDPRESS_DB_USER=${MYSQL_USER}" + - "WORDPRESS_DB_PASSWORD=${MYSQL_PASSWORD}" + networks: + - internal + working_dir: "/var/www/html" + entrypoint: wp + command: "--info" + +networks: + internal: + traefik-public: + external: true diff --git a/docker-wp.example.ini b/docker-wp.example.ini new file mode 100644 index 0000000..a236954 --- /dev/null +++ b/docker-wp.example.ini @@ -0,0 +1,5 @@ +upload_max_filesize = 512M +post_max_size = 512M + +max_execution_time = 300 +max_input_vars = 5000 @@ -0,0 +1 @@ +docker-compose run --rm wpcli $@ |