bfranske / phplist-alpine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

phpList Alpine

Introduction

This repository contains files used to build and run a copy of the phpList software on an Alpine docker image. It is a work in progress.

Building the phpList Docker image

  1. To build a Docker image containing Apache, PHP, and the phpList software run the command docker build -t phplist-alpine:3.6.14 .

  2. If you need to remove previously built images and containers all at once use the command docker system prune -a but be careful as this will remove everything (not just phplist-alpine)!

    Note
    The docker volumes which hold your images, plugins, and other persistant data are stored separately and this prune command will not remove them. The docker volumes prune -a command will but be careful as this will remove volumes for other containers too (not just phplist-alpine)! If you want to be more surgical about what volumes you are removing the docker volumes ls command will list them and the docker volumes rm command can remove them.

Setting Up the phpList Docker

  1. Use the cp .env-dist .env command to create a working copy of the environement setup file.

  2. Edit the .env file to specify the MYSQL settings to use, the phpList admin information, and other settings

  3. It’s suggested to grab the latest config file for phpList and put it somewhere on the host system and use a volume to map it to /etc/phplist/config.php inside the container

    Note
    If you want to get any settings from your .env file instead of storing in the php file directly see the /docker-buildfiles/phplist-config.php file in this repository for an example.

Running the phpList Docker

  1. To run a test copy of the software use the docker compose -f phplist.yml up command. You can quit this with a CTRL+C

  2. To run a copy of the software in the background use the docker compose -f phplist.yml up --detach command.

  3. To stop a background copy of the software use the docker compose -f phplist.yml down command.

Configuration Notes

  1. Cron is already setup with a queue runner and bounce processor in the container

Future Work

  • Create instrucitons for using nginx as a reverse proxy in front

  • Take out hard coding of phpList version

  • Add support for changing PHP upload and memory size from outside the container

  • Auto build and push to Docker hub as Github workflow

  • Add support for mapping of the phplist config volume from the .env file

  • Add configuration of bounce processng mailbox into the .env file

This is based on the phplist-docker project and the Dockerfile of the phpList project. These are based on a Debian container though and are quite large and heavy. These are also designed primarily for development work use while phplist-alpine is designed for production use.

About


Languages

Language:Shell 37.1%Language:PHP 32.1%Language:Dockerfile 30.9%