first commit
This commit is contained in:
commit
be98ddfc2e
5
.env
Normal file
5
.env
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
APP_NAME=myname
|
||||||
|
MARIADB_ROOT_PASSWORD=rootpwd
|
||||||
|
MARIADB_DATABASE=database
|
||||||
|
MARIADB_USER=db_user
|
||||||
|
MARIADB_PASSWORD=userpwd
|
44
README.md
Normal file
44
README.md
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
# Docker Compose LEMP Stack
|
||||||
|
|
||||||
|
This repository contains `docker-compose` configuration to start a `LEMP (Linux, Nginx, MariaDB, PHP) + wordpress + phpmyadmin` stack.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
The Nginx configuration can be found in `nginx/default.conf`.
|
||||||
|
|
||||||
|
You can also set the following environment variables, for example in the included `.env` file:
|
||||||
|
|
||||||
|
| Key | Description |
|
||||||
|
|-----|-------------|
|
||||||
|
|APP_NAME|The name used when creating a container.|
|
||||||
|
|MARIADB_ROOT_PASSWORD|The mariaDB root password used when creating the container.|
|
||||||
|
|MARIADB_DATABASE|Name of the database used by Wordpress.|
|
||||||
|
|MARIADB_USER|Used by Wordpress.|
|
||||||
|
|MARIADB_PASSWORD|Used by Wordpress.|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
##### Clone this repository.
|
||||||
|
|
||||||
|
Clone this repository with the following command: `git clone https://github.com/bernd32/lemp-wp-phpmyadmin-docker.git`.
|
||||||
|
|
||||||
|
##### Start the server.
|
||||||
|
|
||||||
|
Start the server using the following command inside the directory you just cloned: `docker-compose up`.
|
||||||
|
Docker will now build your containers. Once the process is complete, you can access your WordPress installation at `http://localhost:8082` and your phpMyAdmin at `http://localhost:8084` and wordpress at `http://localhost:8086`.
|
||||||
|
|
||||||
|
## Entering the containers
|
||||||
|
|
||||||
|
You can use the following command to enter a container:
|
||||||
|
|
||||||
|
Where `{CONTAINER_NAME}` is one of:
|
||||||
|
|
||||||
|
`docker exec -ti {CONTAINER_NAME} /bin/bash`
|
||||||
|
|
||||||
|
* `{APP_NAME}-php`
|
||||||
|
* `{APP_NAME}-nginx`
|
||||||
|
* `{APP_NAME}-mariadb`
|
||||||
|
|
||||||
|
## Setup secure connections (optional):
|
||||||
|
|
||||||
|
If you want to set up SSL for secure connections (HTTPS), you will need to modify your Nginx configuration and possibly use Certbot for a free Let's Encrypt certificate or add your own certificate details.
|
71
docker-compose.yml
Normal file
71
docker-compose.yml
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
version: '3'
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: nginx:latest
|
||||||
|
container_name: ${APP_NAME:?err}-nginx
|
||||||
|
ports:
|
||||||
|
- "8082:80"
|
||||||
|
volumes:
|
||||||
|
- ./nginx:/etc/nginx/conf.d
|
||||||
|
depends_on:
|
||||||
|
- php
|
||||||
|
- db
|
||||||
|
restart: on-failure
|
||||||
|
|
||||||
|
php:
|
||||||
|
image: php:fpm
|
||||||
|
build:
|
||||||
|
context: ./docker
|
||||||
|
dockerfile: php.Dockerfile
|
||||||
|
container_name: ${APP_NAME:?err}-php-fpm
|
||||||
|
ports:
|
||||||
|
- 9000:9000
|
||||||
|
volumes:
|
||||||
|
- ./wordpress:/var/www/html
|
||||||
|
environment:
|
||||||
|
- PHP_EXTENSIONS=mysqli pdo pdo_mysql
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: mariadb:latest
|
||||||
|
container_name: ${APP_NAME:?err}-mariadb
|
||||||
|
volumes:
|
||||||
|
- db_data:/var/lib/mysql
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:?err}
|
||||||
|
MYSQL_DATABASE: ${MARIADB_DATABASE:?err}
|
||||||
|
MYSQL_USER: ${MARIADB_USER:?err}
|
||||||
|
MYSQL_PASSWORD: ${MARIADB_PASSWORD:?err}
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
phpmyadmin:
|
||||||
|
image: phpmyadmin/phpmyadmin
|
||||||
|
container_name: phpmyadmin-container
|
||||||
|
environment:
|
||||||
|
PMA_HOST: db
|
||||||
|
MYSQL_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:?err}
|
||||||
|
ports:
|
||||||
|
- '8084:80'
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
|
||||||
|
wordpress:
|
||||||
|
image: wordpress
|
||||||
|
container_name: ${APP_NAME:?err}-wordpress
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- 8086:80
|
||||||
|
environment:
|
||||||
|
WORDPRESS_DB_HOST: db
|
||||||
|
WORDPRESS_DB_USER: ${MARIADB_USER:?err}
|
||||||
|
WORDPRESS_DB_PASSWORD: ${MARIADB_PASSWORD:?err}
|
||||||
|
WORDPRESS_DB_NAME: ${MARIADB_DATABASE:?err}
|
||||||
|
volumes:
|
||||||
|
- ./wordpress:/var/www/html
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
db_data:
|
||||||
|
wordpress:
|
10
docker/php.Dockerfile
Normal file
10
docker/php.Dockerfile
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
FROM php:fpm
|
||||||
|
|
||||||
|
RUN apt-get update && \
|
||||||
|
apt-get install -y git zip libxml2-dev
|
||||||
|
|
||||||
|
RUN curl --silent --show-error https://getcomposer.org/installer | php && \
|
||||||
|
mv composer.phar /usr/local/bin/composer
|
||||||
|
|
||||||
|
# Uncomment to have mysqli extension installed and enabled
|
||||||
|
RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
|
18
nginx/default.conf
Normal file
18
nginx/default.conf
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
index index.php index.html;
|
||||||
|
server_name _;
|
||||||
|
error_log /var/log/nginx/error.log;
|
||||||
|
access_log /var/log/nginx/access.log;
|
||||||
|
root /var/www/html;
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$args;
|
||||||
|
}
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_pass php:9000;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user