投稿日:
Dockerでwallabag構築
はじめに
Dockerでwallabagを構築した際の作業メモ
wallabagはWebページをオフラインでも読めるように保存しておく,いわゆる「後で読む」サービスをセルフホストできるソフトウェア.
動機としては「後で読む」ことよりも,他ブラウザ・PC間で共有できるオンラインブックマーク的なものが欲しくて構築した.
Unread(未読)の他,アーカイブやタグ機能を使って保存したWebページの分類分けができる.
手順
docker関連ファイル準備
docker-compose
github(wallabag/docker)のサンプルを参考にして以下のように作成した.
dokcer-compose.yml
version: '3'
services:
wallabag:
image: wallabag/wallabag
container_name: "wallabag"
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
- SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
- SYMFONY__ENV__DATABASE_HOST=db
- SYMFONY__ENV__DATABASE_PORT=3306
- SYMFONY__ENV__DATABASE_NAME=wallabag
- SYMFONY__ENV__DATABASE_USER=wallabag
- SYMFONY__ENV__DATABASE_PASSWORD=wallapass
- SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
- SYMFONY__ENV__MAILER_HOST=127.0.0.1
- SYMFONY__ENV__MAILER_USER=~
- SYMFONY__ENV__MAILER_PASSWORD=~
- [email protected]
- SYMFONY__ENV__DOMAIN_NAME={your domain (ex)https://test.com}
- SYMFONY__ENV__SERVER_NAME="{your server name}"
ports:
- "80:80"
volumes:
- ./images:/var/www/wallabag/web/assets/images
depends_on:
- db
- redis
db:
image: mariadb
container_name: "wallabag-db"
environment:
- MYSQL_ROOT_PASSWORD=wallaroot
volumes:
- ./data:/var/lib/mysql
redis:
image: redis:alpine
container_name: "wallabag-redis"
githubのサンプルでは各サービスに以下のようなヘルスチェックの設定があったが、個人用でそこまでは不要かなと思ったので除外
healthcheck:
test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
interval: 1m
timeout: 3s
ディレクトリ構成
立ち上げ前のディレクトリ構成は以下となる.
/wallabag
|--docker-compose.yml
各コンテナのデータはdocker-composeファイルと同じディレクトリに格納するようマウント先を指定したため,最終的なディレクトリ構造は以下のようになる.
/wallabag
|--docker-compose.yml
|--data
| |--[MariaDBデータ]
|--images
| |--[Wallabagデータ]
バックアップ/リカバリする場合はこのディレクトリごとコピーすれば良いはず.
立ち上げ
docker-compose.ymlを配置したディレクトリにて以下コマンドでコンテナを立ち上げる.
$ docker-compose up -d
https://test.com にアクセスしてwallabagのログイン画面が表示されることを確認する.
wallabag/wallabagでログインできる.
手順ここまで.ありがとうございました.