QNAP TS-431P の Docker で Kanon
Raspberry Pi で構築していたリポジトリサーバを NAS で構築した際のメモです。紆余曲折ありましたが、今は下記のようなキーワードで運用しています
まず、Container Station をインストールして、ssh を有効化します。 後は、作業PCからお好きなターミナルで NAS に接続し、コマンドラインベースで作業します。
適当な作業フォルダを作成して、下記のファイルを配置し、コンテナイメージを作成します。kanonconductor.tgzは、あらかじめ bitbucket からクローンを作成し、tgz で固めておきます。
コンテナイメージが出来上がったら、Container Station でイメージからインスタンスを作成します。 作成したコンテナが起動したら、ssh で ubuntu ユーザとしてログインできます。
起動したコンテナは、まだ apache が動作しているだけなので、KanonConductor のセットアップを続けます。 Docker イメージを作成した時に ADD した kanonconductor.tgz が /var/opt/ 配下に展開されていますので、一部セットアップスクリプトを修正してから、スクリプトを実行します。
- QNAP TS-431P の Container Station (Docker) を利用
- Docker のベースイメージは本家の Ubuntu 14.04
- KanonConductor ( https://bitbucket.org/jun66j5/kanonconductor )
- プロジェクトデータファイル、リポジトリデータは NAS の共有フォルダをマウント
- NAS の事前準備
- ssh と apache が動作するコンテナイメージを作成
- コンテナを作成し KanonConductor をセットアップ
まず、Container Station をインストールして、ssh を有効化します。 後は、作業PCからお好きなターミナルで NAS に接続し、コマンドラインベースで作業します。
適当な作業フォルダを作成して、下記のファイルを配置し、コンテナイメージを作成します。kanonconductor.tgzは、あらかじめ bitbucket からクローンを作成し、tgz で固めておきます。
[~] # mkdir docker-work
[~] # cd docker-work/
[~/docker-work] # vi Dockerfile
[~/docker-work] # vi supervisord.conf
[~/docker-work] # vi startup.sh
[~/docker-work] # ls -l
-rw-r--r-- 1 admin administ 244 May 24 22:35 Dockerfile
-rw-r--r-- 1 admin administ 51754205 May 24 22:52 kanonconductor.tgz
-rw-r--r-- 1 admin administ 482 May 24 22:22 startup.sh
-rw-r--r-- 1 admin administ 130 May 24 22:03 supervisord.conf
[~/docker-work] # docker build -t ubuntu-apache-ssh:14.04 .
Dockerfile
FROM ubuntu:14.04 RUN apt-get update && \ apt-get install -y apache2 ssh supervisor ADD supervisord.conf /etc/supervisor/conf.d/supervisord.conf ADD startup.sh /startup.sh RUN chmod a+x /startup.sh ADD kanonconductor.tgz /var/opt/ EXPOSE 80 22 ENTRYPOINT ["/startup.sh"] CMD ["/bin/bash"]supervisord.conf
[program:sshd] command=/usr/sbin/sshd -D [program:httpd] command=/usr/sbin/apachectl -D FOREGROUNDstartup.sh
#!/bin/bash mkdir -p /var/run/sshd # create an ubuntu user # PASS=`pwgen -c -n -1 10` PASS=ubuntu # echo "Username: ubuntu Password: $PASS" id -u ubuntu &>/dev/null || useradd --create-home --shell /bin/bash --user-group --groups adm,sudo ubuntu echo "ubuntu:$PASS" | chpasswd exec /usr/bin/supervisord -n
コンテナイメージが出来上がったら、Container Station でイメージからインスタンスを作成します。 作成したコンテナが起動したら、ssh で ubuntu ユーザとしてログインできます。
起動したコンテナは、まだ apache が動作しているだけなので、KanonConductor のセットアップを続けます。 Docker イメージを作成した時に ADD した kanonconductor.tgz が /var/opt/ 配下に展開されていますので、一部セットアップスクリプトを修正してから、スクリプトを実行します。
ssh ubuntu@192.168.1.7
ubuntu@repository:~$ cd /var/opt/kanonconductor/
ubuntu@repository:/var/opt/kanonconductor$ sudo vi pluginlist
---
下記を編集
svn+http://svn.edgewall.org/repos/trac/plugins/0.12/mercurial-plugin#egg=TracMercurial
↓
svn+https://svn.edgewall.org/repos/trac/plugins/0.12/mercurial-plugin#egg=TracMercurial
---
ubuntu@repository:/var/opt/kanonconductor$ sudo bash kanon-setup
セットアップが完了すると、/var/opt/kanon 配下に各種データが生成されるので、これを NAS からマウントした /Repository にシンボリックリンクとして付け替えて、Raspberry Pi で運用していた時のデータに差し替えました。
ubuntu@repository:~$ sudo mv /var/opt/kanon /var/opt/kanon_org
ubuntu@repository:~$ sudo ln -s /Repository/kanon /var/opt/kanon
新しくセットアップした Kanon に以前使っていたアカウントを追加すれば完了です。
“QNAP TS-431P の Docker で Kanon” に対して1件のコメントがあります。