Wstęp
W tym poradniku opiszę instalację WordPresa w Dockerze. Dodatkowo zabezpieczymy aplikację używając odwrotnego proxy Nginx Proxy Manager i usługi CloudFlare.
Wymagania wstępne
1. Zainstalowany Docker Engine i Docker Compose
2. Znajomość Nginx Proxy Manager i Cloudflare
Instalacja
Tworzymy nowy folder a w nim plik docker-compose.yml:
mkdir wordpress
cd wordpress
sudo nano docker-compose.yml
Wklejamy następującą konfigurację dla dokcer-compose:
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
links:
- db:db
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
Zmień domyślne wartości sekcji wordpress dla WORDPRESS_DB_USER, WORDPRESS_DB_PASSWORD i WORDPRESS_DB_NAME. W sekcji db zmieniasz wartości MYSQL_DATABASE, MYSQL_USER i MYSQL_PASSWORD na takie same jak w sekcji wordpress.
Jeżeli któryś z twoich kontenerów używa portu 8080 możesz go zmienić na dowolny inny np. 8181:80.
Zamykamy plik jednocześnie go zapisując naciskając Ctrl+X -> Y -> Enter.
Uruchamiamy docker-compose komendą:
sudo docker compose up -d
Po pobraniu i uruchomieniu kontenerów, możemy przejść do webowego instalatora wordpresa wpisując w przeglądarkę
http://IP_twojego_serwera:8080
W tym momencie przerywamy instalację Wordpresa. W kolejnm kroku zabezpieczymy instalację certyfikatem SSL i Proxy.
Konfiguracja CloudFlare i Nginx Proxy Manager
Dodaj wpis DNS zgodnie z poniższym zrzutem ekranu. Typ A, Name – @, zmień adres IP na adres Twojego serwera, Proxy starus – DNS Only:
Jeżeli jeszcze tego nie zrobiłeś zainstaluj Nginx Proxy Manager zgodnie z poradnikiem: Instalacja Nginx Proxy Manager
Tworzymy nowy Proxy Host:
Po utworzeniu hosta rozwijamy opcje i klikamy edit:
Przechodzimy do zakładki SSL i zaznaczamy opcje Force SSL i HTTP/2 Support:
Zmieniamy Proxy status na Proxied w panelu CloudFlare:
Kontynuujemy instalację WordPresa z zabezpieczoną domeną: