docker composeを使って「phpList」を構築する

docker composeを使って「phpList」を構築する

docker composeを使ってオープンソースのメール配信ツール「phpList」を構築するまでの手順を記述してます。「yml」は「git」から入手しています。構築時間は10分ほどでした。

環境

  • OS CentOS Stream release 9
  • docker 20.10.17, build 100c701
  • docker-compose v2.0.1

docker-compose.yml取得

「github」上にあったものを「clone」して取得して、対象のディレクトリに移動します。

$ git clone https://github.com/phpList/phplist-docker.git

$ cd phplist-docker

「phplist.yml」の内容は、以下のようになってます。
※自分の場合は「mariadb」の「port」だけは変更します。

version: '3.5'

services:
   dbhost:
     container_name: phplist_dbhost
     image: mariadb:10.1
     volumes:
       - dbhost_data:/var/lib/mysql
     restart: always
     ports:
       - 3307:3306
     environment:
       MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
       MYSQL_DATABASE: ${MYSQL_DATABASE}
       MYSQL_USER: ${MYSQL_USER}
       MYSQL_PASSWORD: ${MYSQL_PASSWORD}

   mailhog:
     container_name: phplist_mailhog
     image: mailhog/mailhog:latest
     ports:
       - 8025:8025
     environment:
       MH_SMTP_BIND_ADDR: 0.0.0.0:25

   phplist:
     container_name: phplist
     depends_on:
       - dbhost
       - mailhog
     image: phplist/phplist:${PHPLIST_VERSION:-latest}
     volumes:
       - ${IMAGES:-images}:/var/www/phpList3/public_html/images
     ports:
       - "${PORT:-8000}:80"
     restart: always
     environment:
       DB_HOST: phplist_dbhost
       DB_USER: ${MYSQL_USER}
       DB_PASSWORD: ${MYSQL_PASSWORD}
       DB_NAME: ${MYSQL_DATABASE}
       ADMIN_NAME: ${PHPLIST_ADMINNAME}
       ADMIN_PASSWORD: ${PHPLIST_ADMINPASSWORD}
       ADMIN_EMAIL: ${PHPLIST_ADMINEMAIL}
       HOSTNAME: ${HOSTNAME}
       PORT: ${PORT}
       MAILHOST: mailhog

volumes:
    dbhost_data:
    images:
    plugins:

環境変数でパスワードなどを設定することができます。

$ cp .env-dist .env

$ nano .env

MYSQL_ROOT_PASSWORD="somerootpassword"
MYSQL_DATABASE=phplistdb
MYSQL_USER=phplist
MYSQL_PASSWORD=phplist
PHPLIST_ADMINNAME="Your Name"
PHPLIST_ADMINPASSWORD="SomeRandomPassword"
PHPLIST_ADMINEMAIL=YourEmail@Yourdomain.com
PHPLIST_VERSION=latest
PORT=8000
HOSTNAME=localhost
# make sure these are world writable
IMAGES=/path/to/images
PLUGINS=/path/to/plugins
FORCE_STOP_ALL_BEFORE=false

「phpList」起動

以下のコマンドを実行して起動します。

$ ./start-phplist.sh

「phpList」アクセス

ブラウザから http://プライベートIP or サーバーIP:8000/lists/admin/ にアクセスします。

admin / SomeRandomPassword でログインします。

ユーザー情報も入力します。

これで、構築は完了となります。