Sign inSign up

llewellyn/joomla

By llewellyn

Updated 10 months ago

Llewellyn's Joomla Images

Image
Content management system
2

5.4K

llewellyn/joomla repository overview

Joomla! Octoleo Docker Image

Welcome to the Joomla! Octoleo project, where we provide Docker images tailored for Joomla! enthusiasts and developers. These images are curated by @llewellynvdm and function as a playground for innovating and testing ideas that could eventually enhance the official Joomla-Docker images. While these images are experimental and not intended for production use, your feedback and contributions are highly valued.

Docker Pulls

Joomla Logo

Quick Start

To get started, ensure you have Docker Compose installed.

Setting Up Traefik as a Reverse Proxy

We recommend using Traefik for reverse proxying. Create a docker-compose.yml file for Traefik in a directory like /home/username/Docker/traefik.

Here's a basic Traefik configuration:

services:
  traefik:
    container_name: traefik
    image: "traefik:latest"
    command:
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --providers.docker
      - --log.level=ERROR
      - --certificatesresolvers.octoleoresolver.acme.httpchallenge=true
      - --certificatesresolvers.octoleoresolver.acme.email=joomla@yourdomain.com
      - --certificatesresolvers.octoleoresolver.acme.storage=/acme.json
      - --certificatesresolvers.octoleoresolver.acme.httpchallenge.entrypoint=web
      - --providers.file.directory=/conf
      - --providers.file.watch=true
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "/home/username/Docker/traefik/conf:/conf"
      - "/home/username/Docker/traefik/acme.json:/acme.json"
    labels:
      - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
      - "traefik.http.routers.http-catchall.entrypoints=web"
      - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
    networks:
      - traefik

networks:
  traefik:
    external: true
    name: traefik_webgateway

Deploy Traefik using:

cd /home/username/Docker/traefik
docker network create traefik_webgateway
docker-compose up -d
Deploying Joomla

Choose the Joomla! Docker image version you need. Available tags include:

  • llewellyn/joomla:latest
  • llewellyn/joomla:x.x
  • llewellyn/joomla:x.x-phpx.x
  • llewellyn/joomla:x.x-phpx.x-variant

Find all tags here: Docker Hub Tags

For Joomla setup, create a docker-compose.yml file in /home/username/Docker/websitename.

Example Joomla setup:

services:
  mariadb_websitename:
    image: mariadb:latest
    container_name: mariadb_websitename
    restart: unless-stopped
    environment:
      MARIADB_USER: octoleo
      MARIADB_DATABASE: octoleo
      MARIADB_PASSWORD: your_password_here
      MARIADB_ROOT_PASSWORD: your_root_password_here
    volumes:
      - '/home/username/Projects/websitename/db:/var/lib/mysql'
    networks:
      - traefik

  joomla_websitename:
    image: llewellyn/joomla:5.2
    container_name: joomla_websitename
    restart: unless-stopped
    environment:
      JOOMLA_SITE_NAME: Octoleo
      JOOMLA_ADMIN_USER: Octoleo
      JOOMLA_ADMIN_USERNAME: octoleo
      JOOMLA_ADMIN_PASSWORD: your_password_here
      JOOMLA_ADMIN_EMAIL: [email protected]
      JOOMLA_DB_HOST: mariadb_websitename:3306
      JOOMLA_DB_USER: octoleo
      JOOMLA_DB_NAME: octoleo
      JOOMLA_DB_PASSWORD: your_password_here
      JOOMLA_EXTENSIONS_URLS: https://git.vdm.dev/joomla/pkg-component-builder/archive/5.x.zip
    depends_on:
      - mariadb_websitename
    volumes:
      - '/home/username/Projects/websitename/website:/var/www/html'
    networks:
      - traefik
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.joomla_websitename.rule=Host(`octoleo.yourdomain.com`)"
      - "traefik.http.routers.joomla_websitename.entrypoints=websecure"
      - "traefik.http.services.joomla_websitename.loadbalancer.server.port=80"
      - "traefik.http.routers.joomla_websitename.service=joomla_websitename"
      - "traefik.http.routers.joomla_websitename.tls.certresolver=octoleoresolver"

  phpmyadmin_websitename:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin_websitename
    restart: unless-stopped
    environment:
      PMA_HOST: mariadb_websitename
      PMA_PORT: 3306
      UPLOAD_LIMIT: 300M
    depends_on:
      - mariadb_websitename
    networks:
      - traefik
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.phpmyadmin_websitename.rule=Host(`octoleo-db.yourdomain.com`)"
      - "traefik.http.routers.phpmyadmin_websitename.entrypoints=websecure"
      - "traefik.http.services.phpmyadmin_websitename.loadbalancer.server.port=80"
      - "traefik.http.routers.phpmyadmin_websitename.service=phpmyadmin_websitename"
      - "traefik.http.routers.phpmyadmin_websitename.tls.certresolver=octoleoresolver"

networks:
  traefik:
    external: true
    name: traefik_webgateway

Deploy Joomla using:

cd /home/username/Docker/websitename
docker-compose up -d

Usage Scenarios

This setup is ideal for running multiple Joomla instances on the same server. It simplifies access and configuration, especially when paired with a domain service like Cloudflare.

  • Use Cloudflare to point your domain to your server.
  • Organize your server with two main directories: Docker for Docker Compose files and Projects for project-related files.

Configure Traefik once, and then add as many Joomla containers as needed. Access your Joomla site through your domain, secured with SSL.

Enjoy experimenting with Joomla on Docker!

License
Copyright (C) 2021 Llewellyn van der Merwe. All rights reserved.
Licensed under the GNU General Public License version 2 or later; see LICENSE.txt

Tag summary

Content type

Image

Digest

sha256:588a82da6

Size

262.3 MB

Last updated

10 months ago

docker pull llewellyn/joomla