Setting up MediaWiki using Docker Compose and Mariadb

From JohnHobson.ws
Revision as of 03:51, 23 November 2024 by John (talk | contribs)
Jump to navigation Jump to search

Back to Homepage

WORK IN PROGRESS NOT FINISHED YET

PREFACE - I am going to assume that you already have a server/PC with Linux installed. You will also need Docker and Docker-Compose installed

I found it a little hard to setup MediaWiki for the first time using Docker and getting all the database working correctly. I have now run a few instances of it and decided to write a short post on getting it working

1: Setting up directory and docker-compose.yml file

1 - First we need to create our directory. For this test we will be using

/home/john/docker/testwiki

2 - Inside this folder we need to create a file named docker-compse.yml and copy the following into it

# MediaWiki with MariaDB docker-compose file
#
# Access via "http://localhost:4820"
# or "http://serveripaddress:4820" if using docker-machine or accessing from another PC
#
# MariaDB accessed via "http://localhost:4840"
# or "http://serveripaddress:4840" if using docker-machine or accessing from another PC

version: '3'
services:
  mediawiki:
    image: mediawiki
    restart: always
    ports:
      - 4820:80
    links:
      - database
    volumes:
      - /home/john/docker/testwiki/images:/var/www/html/images
      # After initial setup, download LocalSettings.php to the same directory as
      # this yaml and uncomment the following line and use compose to restart
      # the mediawiki service
      #- /home/john/docker/testwiki/LocalSettings.php:/var/www/html/LocalSettings.php
  # This key also defines the name of the database host used during setup instead of the default "localhost"
  database:
    image: mariadb
    restart: always
    ports:
      - 4840:3306
    environment:
      # @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php
      MYSQL_DATABASE: testwikidb
      MYSQL_USER: testwikiuser
      MYSQL_PASSWORD: testwikipassword
      MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
    volumes:
      - /home/john/docker/testwikidb/db:/var/lib/mysql

volumes:
  images:
  db:

2: Running the compose file

1 - Navigate to where your docker-compose.yml file is and type the following

docker-compose up -d

2 - Once docker has download the required images it will setup mediawiki and mariadb as required

john@server:~/docker/testwiki$ docker-compose up -d
Creating network "testwiki_default" with the default driver
Creating volume "testwiki_images" with default driver
Creating volume "testwiki_db" with default driver
Creating testwiki_database_1 ... done
Creating testwiki_mediawiki_1 ... done
john@server:~/docker/testwiki$

3 - The compose file will create a new directory for mariadb

/home/john/docker/testwikidb

3: Setting up mediawiki installation

1 - Navigate to http://serveripaddress:4820 and click on Please set up the wiki first.