Plesk + Docker で Subversion を外部公開

サーバー

Plesk + Docker で Subversion の外部公開をやってみて、運用からしばらくたったので、忘れないうちに記事化。

Docker

Docker って最近聞きはするけど何なのか全く理解できてなかった。

Dockerについて基本から最近追加された機能までまとめ - Qiita
Dockerとはコンテナベースのアプリケーションを仮想化したもの。軽量なVMの様に見えるがこれまでの(VirtualBoxなど)VMでは実現が難しい、不可能であったユースケースを解決してくれる。…

要するに仮想環境なんだけど、VM のようにゲスト OS やライブラリを全て個別に持つのではなく、
ホスト OS やリソースを共有をするので、VM よりも軽量で効率的なものらしい。

コンテナ

Docker では、ひとまとめになったパッケージをコンテナという。
Docker Hub (https://hub.docker.com/) では、有志が作ったコンテナが大量に置かれており、
公開扱いになっているものは、ここから自由に選択して導入することができる。

Dockerコンテナをクラウドサービス上で共有できる「Docker Hub」を使ってみる | さくらのナレッジ
近年注目されているコンテナ作成ツール「Docker」向けに、作成したコンテナを公開するための「Docker Hub」というサービスが開始された。今回はDockerで作成したコンテナをこのDocker Hubにて公開する方

必要なライブラリなどがひとまとめに、かつ、セットアップされた状態でコンテナ化されている。
なので、よく linux 系でありがちな、足りないパッケージをインストールしたり、設定ファイルの編集したり、バージョン違いでうまくいかなくて悩んだり・・・。
そういった面倒なことをせずにサービスを立ち上げることができる。

Plesk 環境での Docker

Docker を使用する
ビデオチュートリアルを再生 Docker は開発者およびシステム管理者向けの分散アプリケーション用プラットフォームであり、コンテナ内でアプリケーションを実行できます。特定のソフトウェア(Redis、MongoDB など)や特定のソフ...
Plesk – Docker を使ってWebアプリケーションをサクッと立ち上げよう | さくらのナレッジ
Plesk – Docker を使ってWebアプリケーションをサクッと立ち上げよう あけましておめでとうございます。昨年の夏からPleskの記事提供を始めて、もう年が変わってしまいました。Pleskも昨年10月に新バージ

Plesk 環境だと、サーバー管理画面から Docker の起動やオプション設定ができる。
コマンドを入力せずにサービス立ち上げまで問題なくできてしまう。
いいのか?こんな楽して・・・と思うぐらい呆気ないほど簡単。

Subversion のいい感じの Docker コンテナを探しインストール

Plesk の Docker を選択する。
検索テキストボックスから直接 Docker Hub の検索ができる。

今回は、CollabNet Subversion Edge のコンテナを選択した。

https://hub.docker.com/r/mamohr/subversion-edge/

使用するポート番号がしっかり記載されており助かる。
実行を押すと、ダウンロードが始まる。

ダウンロード終了後、設定画面になる。

今回ダウンロードしたコンテナは、

The container exposes the following ports:

3343 – HTTP CSVN Admin Sites
4434 – HTTPS CSVN Admin Sites (If SSL is enabled)
18080 – Apache Http SVN

とあるので、外部公開する場合は、これらのポートをマッピングする必要がある。
自動マッピングのチェックを外して、自分で設定したいポートに振り返る。

ボリュームマッピングに関しては、自分の好きなところに設定すればいいと思う。
plesk の場合は、ファイルマネージャーで管理しているディレクトリを指定しておいたほうが後々便利かもしれない。
その場合は一度コンソールからパスを確認しておき、そのパスを割り当てる。
plesk のファイルマネージャーで管理されているディレクトリパスは、

var/www/vhosts/(ホスト名)

って感じだったので、その下に csvn と名前の付いたディレクトリを作り、その下にマッピングすることにする。

環境変数は特にいじらず、デフォルトのままで問題ない。

設定が終わったら、OK を押すと、このようにコンテナが起動する。

Plesk (nginx) の Docker プロキシルールを設定する

Docker を使用する
ビデオチュートリアルを再生 Docker は開発者およびシステム管理者向けの分散アプリケーション用プラットフォームであり、コンテナ内でアプリケーションを実行できます。特定のソフトウェア(Redis、MongoDB など)や特定のソフ...

外部に指定したポートを公開するには、 nginx 側での設定が必要になる。
「ウェブサイトとドメイン」→「Docker プロキシルール」を選択する。

「ルールを追加」で、コンテナと設定したポートを選択。

追加すると、以下のようにリスト表示される。

 

 http://(ホスト名):(3343のターゲットポート)

もしくは、https に対応している場合は

https://(ホスト名):(4434のターゲットポート)

でアクセス。
以下のように、CollabNet Subversion Edge のログイン画面になれば成功。

CollabNet Subversion Edge の設定

起動初期状態で、ユーザ名、パスワードともに admin になっているので、ログインしたらまずパスワードを変更する。

サーバー設定。特に難しいことはない。
ただし、注意として、ポート番号とリポジトリディレクトリ・バックアップディレクトリは、Docker 側と一体になっているので、いじらないほうがいい。

Subversion を起動。

こうなっていれば OK
そこに書かれているように、svn のリポジトリ URL、web 上での閲覧サービスの URL が表示される。

svn のリポジトリ追加

こんな感じで、web 上だけで管理が可能。

また、ユーザー管理に関しても web 上だけで操作できるため、まずコマンドを触ることなく管理ができて楽ちん。

バックアップ

CollabNet Subversion Edge では、定期バックアップ機能があるので、それを使ってバックアップ可能。

が、今すぐバックアップを取る機能はないので、そういう場合はコマンドから手動で。

vnadmin dump リポジトリパス > ダンプファイル名

コメント