Instalacja WordPress w Dockerze z NGINX i CloudFlare

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ą: