Docker で Yourls を立てる
Ubuntu の Docker で短縮 URL サービスの Yourls を立てたのでその方法のメモ。
環境:
・VMware vSphere Hypervisor 7.0U3g(英語環境)
・Ubuntu Server 22.04.3
(1)Ubuntu に Docker および docker-compose をインストールしておく。
(2)yourls ディレクトリを作成し、移動。
$ mkdir yourls && cd yourls
(3)docker-compose.yml というファイルを以下の内容で作成。
version: '3.1'
services:
yourls:
image: yourls
restart: always
ports:
- 8080:80
environment:
YOURLS_DB_PASS: {DBpassword}
YOURLS_SITE: https://example.com
YOURLS_USER: {yourls-user}
YOURLS_PASS: {yourls-password}
mysql:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: {DBpassword}
MYSQL_DATABASE: yourls
YOURLS_DB_PASS と MYSQL_ROOT_PASSWORD は同じものにする。
(4)以下のコマンドでコンテナを起動。
$ sudo docker-compose up -d
http://example.com/admin/ あるいは http://{IP アドレス}/admin/ にアクセスすれば、Yourls が使えるようになっているはずだ。3で設定したユーザー名とパスワードでログインする。
コンテナを停止するには以下のコマンド。
$ sudo docker-compose stop
再度以下のコマンドを実行することで再び起動する。
$ sudo docker-compose up -d
docker-compose.yml で restart: always のように自動起動の設定をしているので、マシンを再起動したりして Docker サービスが再起動しても以降 Yourls(および MYSQL の)のコンテナが自動起動する。Docker サービスの再起動は以下のコマンド。
$ sudo systemctl stop docker
$ sudo systemctl start docker
(5)プラグインに関してはプラグインディレクトリをマウントするよう docker-compose.yml に記述することで、ホストマシンで簡単にプラグインの追加ができるはずだった。しかし、なぜかホストマシンからのプラグインの追加が Yourls に反映されない。
仕方がないので、コンテナ内に入ってプラグインを追加する。
$ sudo docker exec -it {コンテナ名} /bin/bash
# apt update
# apt install git
# cd /var/www/html/user/plugins
例えば以下の「Bulk Import and Shorten」というプラグインを追加する場合、以下のコマンドでインストールできる。
# git clone https://github.com/vaughany/yourls-bulk-import-and-shorten.git
プラグインは Yourls のプラグインページで有効化すれば使えるようになる。
特に以下のタイムゾーンを設定するプラグインは必須だ。
GitHub - YOURLS/timezones
https://github.com/YOURLS/timezones
またデフォルトでは URL にアルファベットの大文字が使えない。コンテナの中に入った状態で、/var/www/html/user/config.php の URL shortening method を 36 から 62 に変更すればいい。すぐ反映されて、アルファベットの大文字が使えるようになった。
(6)コンテナを停止し、さらに削除するなら以下。
$ sudo docker-compose down
この場合 Yourls の URL のデータもプラグインのデータもすべて消える。
参考:
yourls - Official Image | Docker Hub
https://hub.docker.com/_/yourls
技術メモメモ: Docker Composeを作って複数のコンテナの作成・起動・停止・削除を制御する
https://tech-mmmm.blogspot.com/2021/02/docker-compose.html
Integrate yourls plugins to docker image · Issue #16 · YOURLS/images · GitHub
https://github.com/YOURLS/images/issues/16
YOURLSで短縮URLサービスを自前で構築する - maruko2 Note.
http://www.maruko2.com/mw/YOURLSで短縮URLサービスを自前で構築する
GitHub – git cloneコマンドでファイルをダウンロードする方法 | Howpon[ハウポン]
https://howpon.com/3663
[Question/Feature] Capital Letters · Issue #1588 · YOURLS/YOURLS · GitHub
https://github.com/YOURLS/YOURLS/issues/1588
この記事が気に入ったらサポートをしてみませんか?