WordPress site in Docker

Docker images zijn snel en eenvoudig om te deployen. Een voorbeeld van een snelle deployment van een WordPress website met bijbehorende SQL database vind je hier.

De images voor dit project kun je ophalen van mijn docker hub met:

docker pull nokkie/wordpress
docker pull nokkie/mysql:5.7

Hiermee zijn de images binnen en gaan we eerst een directory maken:

mkdir WordPress
cd WordPress

Eenmaal in deze directory maken we een bestand voor docker-compose en dat dient de volgende naam te hebben: docker-compose.yml. Deze kun je als RAW uit mijn GitLab ophalen: WordPress/docker-compose.yml

Zoals je in het compose-bestand kunt zien, maken we twee containers, één db-container en één wordpress-container en deze worden gelinked aan elkaar. We maken tevens een volume aan in de data-directory. Hier komen de databases van mySQL te staan. We maken een tcp-poort 8000 aan die redirect naar http-poort 80 van de wordpress-site.

version: '2'
services:
  db:     
    image: nokkie/mysql:5.7
    volumes:
      - "./.data/db:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: wordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
  wordpress:
    depends_on:
      - db
    image: nokkie/wordpress:latest
    links:
      - db
    ports:
      - "8080:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_PASSWORD: wordpress

Om de images te bouwen en te starten, gebruik het volgende commando:

docker-compose up -d

Hierbij wordt het compose-bestand ingelezen en op de achtergrond gerund (detached).

Met het port-commando wordt tcp/port 8080 gerouteerd naar poort 80 op de docker container. We kunnen de WordPress site dus bereiken via

http://localhost:8080

wordpress-siteOm de containers te stoppen, geef het commando:

docker-compose down