環境
- OS: Ubuntu 24.04.1 LTS
Dockerのインストール
Linux上で以下のコマンドを実行する。
sudo apt-get install docker.io
sudo apt-get install docker-compose
Piwigo Dockerコンテナの実行ユーザ作成
以下のコマンドを実行する。これにより、piwigoユーザが作成され、docker実行権限が付与される。
sudo useradd -m -s /bin/bash piwigo
sudo gpasswd -a piwigo docker
Piwigoの実行環境設定
以下のコマンドを実行し、Piwigo Dockerコンテナに必要なディレクトリを作成する。
sudo -u piwigo mkdir -p /home/piwigo/piwigo/gallery
sudo -u piwigo mkdir -p /home/piwigo/piwigo/config
sudo -u piwigo mkdir -p /home/piwigo/piwigo_mariadb
sudo -u piwigo mkdir -p /home/piwigo/docker
Piwigoで使用するデータベース(MariaDB)用に、以下の環境ファイルを作成する。
- パス:
/home/piwigo/piwigo_mariadb/env
- 内容
MYSQL_ROOT_PASSWORD=<任意のパスワード> MYSQL_DATABASE=piwigo MYSQL_USER=piwigo MYSQL_PASSWORD=<任意のパスワード>
- 権限: piwigoユーザのみ読み書き可能
- 以下のコマンドにより設定できる
sudo chown piwigo:piwigo /home/piwigo/piwigo_mariadb/env sudo -u piwigo chmod 600 /home/piwigo/piwigo_mariadb/env
Piwigo DockerコンテナのDocker Compose作成
以下のDocker Composeファイルを作成する。
- パス:
/home/piwigo/docker/docker-compose.yml
- 内容
version: "3.8" services: mariadb: image: lscr.io/linuxserver/mariadb:10.11.8-r0-ls160 container_name: piwigo_mariadb environment: - PUID=<piwigoユーザのUID> ※ - PGID=<piwigoユーザのGIU> ※ - TZ=Asia/Tokyo volumes: - /home/piwigo/piwigo_mariadb:/config ports: - 3306:3306 restart: unless-stopped piwigo: image: lscr.io/linuxserver/piwigo:15.0.0-ls281 container_name: piwigo environment: - PUID=<piwigoユーザのUID> ※ - PGID=<piwigoユーザのGIU> ※ - TZ=Asia/Tokyo volumes: - /home/piwigo/piwigo/config:/config - /home/piwigo/piwigo/gallery:/gallery ports: - 8080:80 restart: unless-stopped
- ※
id piwigo
コマンドを実行することで確認できる
- ※
Piwigo Dockerコンテナの起動・停止
Piwigo Dockerコンテナを起動する場合、以下のコマンドを実行する。
sudo su - piwigo
cd /home/piwigo/docker
sudo docker-compose up -d
停止する場合は、以下のコマンドを実行する。
sudo su - piwigo
cd /home/piwigo/docker
sudo docker-compose down
Piwigo Dockerコンテナのサービス化
以下の設定により、Piwigo Dockerコンテナをsystemdのサービスにして、システム起動時に自動実行させることができる。
まず、サービスの設定ファイルを作成する。
- パス:
/etc/systemd/system/piwigo_docker.service
- 内容
[Unit] Description=Piwigo Docker Container Service After=docker.service Requires=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/home/piwigo/docker User=piwigo Group=piwigo ExecStart=/usr/bin/docker-compose up -d ExecStop=/usr/bin/docker-compose down TimeoutStartSec=0 [Install] WantedBy=multi-user.target
以下のコマンドで、サービスを有効化する。
sudo systemctl enable piwigo_docker.service
なお、以下のコマンドで、サービスの起動・停止を確認できる。
- 起動
sudo systemctl start piwigo_docker
- 停止
sudo systemctl stop piwigo_docker