blueriver / docker-muracms

Example Mura Docker images and files
Apache License 2.0
12 stars 8 forks source link

Official Mura Image

Unless you have a special need we recommend that you start with the "Official" Mura Docker Image.

The "Official" Mura Docker Image, is maintained at https://hub.docker.com/r/blueriver/mura/. An example using this image is also included.

A useful example of using the "Official" Docker Image for theme development can be found at https://github.com/blueriver/MuraBootstrap4.

Mura Dockerfiles

The Docker files in this repository may be used to create your own custom Docker container for running Mura. For Docker images, visit the Docker repository at https://hub.docker.com/r/blueriver/docker-muracms/.

NOTE: The example files and Docker images are provided as learning tools only. They are NOT intended for production purposes. That said, you could easily use the information as a basis for creating your own custom Docker images for integration into your team's workflow.

Tags

Description

The Docker images and files included here are for developers to use as they consider options for integrating Docker & Mura into their workflow.

Primary thoughts to consider when implementing Docker and Mura into your workflow include:

Once you have the answers to these questions, you will be able to better select the appropriate Docker image, and docker-compose files to use. That said, feel free to play around with all of the included examples.

Usage & Examples

While some users visiting this repository may have a strong understanding of Docker, and how it works, there are likely others who are completely new to Docker, and don't know where to start.

If you're completely new to Docker, the Docker Documentation area is a tremendous resource. You will also find the Udemy course titled "Docker Mastery: The Complete Toolset From a Docker Captain" extremely helpful in getting you up to speed rather quickly.

The following information assumes you have a copy of the docker-muracms Github repository on your local machine.

Building Your Own Images

Examples

Examples are located under https://github.com/blueriver/docker-muracms/tree/master/examples. Each example contains a docker-compose.yml file. Using your terminal, you may cd into the desired example directory, and then issue the $ docker-compose up command.

Unless you've modified any of the docker-compose.yml files, the information outlined below for each example should be correct. Feel free to inspect the docker-compose.yml files to confirm, and/or to modify as desired.

blueriver-muracms-mysql

This example uses the "Official" Mura Docker image as the base image. It abstracts the Mura core files, and includes host directories under the www directory for editing modules, plugins, sites, and themes. The MySQL database image is added in the docker-compose.yml file. To run this example "as-is", you should be able to simply run $ docker-compose up from within the examples/blueriver-muracms-mysql directory.

commandbox-adobe2016-mssql

This example uses the CommandBox Adobe2016 image as the base image. It abstracts the Mura core files, and includes host directories under the www directory for editing modules, plugins, sites, and themes. The Microsoft SQL Server database image is added in the docker-compose.yml file. To run this example "as-is", you should be able to simply run $ docker-compose up from within the examples/commandbox-adobe2016-mssql directory.

To build a new image (to get the latest updates) and then run it, use $ docker-compose build --no-cache && docker-compose up. Your site should be available, after the scripts have finished running.

commandbox-lucee5-mysql

This example uses the CommandBox Lucee5 image as the base image. It abstracts the Mura core files, and includes host directories under the www directory for editing modules, plugins, sites, and themes. The MySQL database image is added in the docker-compose.yml file. To run this example "as-is", you should be able to simply run $ docker-compose up from within the examples/commandbox-lucee5-mysql directory.

To build a new image (to get the latest updates) and then run it, use $ docker-compose build --no-cache && docker-compose up. Your site should be available, after the scripts have finished running.

commandbox-lucee5-postgres

This example also uses the CommandBox Lucee5 image as the base image. It abstracts the Mura core files, and includes host directories under the www directory for editing modules, plugins, sites, and themes. The Postgres database image is added in the docker-compose.yml file. To run this example "as-is", you should be able to simply run $ docker-compose up from within the examples/commandbox-lucee5-postgres directory.

To build a new image (to get the latest updates) and then run it, use $ docker-compose build --no-cache && docker-compose up. Your site should be available, after the scripts have finished running.

lucee5-mysql

This example uses the Lucee Lucee5 image as the base image. It abstracts the Mura core files, and includes host directories under the www directory for editing modules, plugins, sites, and themes. The MySQL database image is added in the docker-compose.yml file. To run this example "as-is", you should be able to simply run $ docker-compose up from within the examples/lucee5-mysql directory.

To build a new image (to get the latest updates) and then run it, use $ docker-compose build --no-cache && docker-compose up. Your site should be available, after the scripts have finished running.

lucee5-mysql-nofiles

This example uses the Lucee Lucee5 image as the base image. It abstracts the Mura core files, and also abstracts the modules, plugins, sites, and themes directories. In other words, all changes are stored in the mounted volumes. The MySQL database image is added in the docker-compose.yml file. To run this example "as-is", you should be able to simply run $ docker-compose up from within the examples/lucee5-mysql-nofiles directory. To view the volumes created, you can always run $ docker image ls.

To build a new image (to get the latest updates) and then run it, use $ docker-compose build --no-cache && docker-compose up. Your site should be available, after the scripts have finished running.

Sample docker-compose.yml For Mura

The example below uses the "Official" Mura image, along with MySQL. Running $ docker-compose up with the file below would be accessible via http://localhost:8888.

version: '3.3'

services:

  mura:
    image: blueriver/mura:latest
    depends_on:
      - svc_muradb
    environment:
      MURA_ADMIN_USERNAME: admin
      MURA_ADMIN_PASSWORD: 5trongP@55w0rd
      MURA_ADMINEMAIL: youremail@domain.com
      MURA_APPRELOADKEY: appreload
      MURA_DATASOURCE: dsn_mura
      MURA_DATABASE: muradb
      MURA_DBTYPE: mysql
      MURA_DBUSERNAME: root
      MURA_DBPASSWORD: 5trongP@55w0rd 
      MURA_DBHOST: svc_muradb
      MURA_DBPORT: 3306
      MURA_SITEIDINURLS: "false"
      MURA_INDEXFILEINURLS: "true"
      MURA_TESTBOX: "true"
      MURA_USESSL: "false"
    volumes:
      - vol_mura_modules:/var/www/modules
      - vol_mura_plugins:/var/www/plugins
      - vol_mura_sites:/var/www/sites
      - vol_mura_themes:/var/www/themes
    ports:
      - "8888:8888"

  # DB
  svc_muradb:
    image: mysql:5.7.19
    environment:
      MYSQL_DATABASE: muradb
      MYSQL_ROOT_PASSWORD: 5trongP@55w0rd
    volumes:
      - vol_muradb:/var/lib/mysql
    ports:
      - "5555:3306"

# Mounts
volumes:
  vol_muradb:
  vol_mura_modules:
  vol_mura_plugins:
  vol_mura_sites:
  vol_mura_themes:

Issues

Please submit issues to https://github.com/blueriver/docker-muracms/issues.

License

Apache License, Version 2.0