service a subversion with apache2.
10K+
Subversionをサービスとして動かすためのイメージです. Apache2に提供させるサービスとしています.
Dockerホストの10080番ポートを使って,
tools リポジトリを作成するコンテナを作成/開始します.
使うユーザ/パスワード username/secret です.
# docker run --rm --name local-svn -p 10080:80 \
-e SVN_DEFAULT_USER="username" \
-e SVN_DEFAULT_USER_PASSWD="secret" \
-e SVN_DEFAULT_REPOSITORY="tools" \
kuchida1981/subversion-httpd
バックグラウンドで立ち上げたい場合には, オプション --rm の代わりに,
-d を指定します.
Dockerサービスが起動した時点で立ち上がるようにしたい場合は,
オプション --restart=unless-stopped を加えます.
コンテナが起動したら, 次のことを確認してください.
http://127.0.0.1:10080 へアクセスし,
リポジトリ一覧が表示され, tools リポジトリが含まれる
http://127.0.0.1:10080/tools でリポジトリをチェックアウトできる
チェックアウトしたリポジトリに加えた変更をコミットできる
ここでは tools2 という名前のリポジトリを新たに加える手順を示します.
リポジトリを格納しているディレクトリは /var/svn/repos です.
ユーザ www-data に所有させているので,
リポジトリを追加するためには, www-data 所有のリポジトリを作成する必要があります.
起動中のコンテナにログインします.
# docker exec -it local-svn
www-data ユーザとしてログインします.
# su -s /bin/bash www-data
リポジトリを作成し, 必要なディレクトリを作ってコミットします.
$ svnadmin create /var/svn/repos/tools2
$ svn mkdir file:///var/svn/repos/trunk \
file:///var/svn/repos/branches \
file:///var/svn/repos/tags \
-m "Create repository."
ユーザ/パスワード tonegawa/secret というユーザを追加する手順を示します.
起動中のコンテナにログインします.
# docker exec -it local-svn
htpasswd コマンドを用いて, BASIC認証できるユーザを追加します.
# htpasswd -cb /etc/subversion/passwd \
tonegawa secret
変更可能な環境変数です.
SVN_DEFAULT_USERコンテナ作成時に追加するユーザのユーザ名です.
指定しなければ, default ユーザを作成します.
SVN_DEFAULT_USER_PASSWDコンテナ作成時に追加するユーザのパスワードです.
指定しなければパスワード default とします.
SVN_DEFAULT_REPOSITORYコンテナ作成時に作成するリポジトリの名前です.
指定しなければ, default という名前のリポジトリを作成します.
Dockerfile からDockerイメージをビルドする手順です.
gitリポジトリをクローンします.
$ git clone https://[email protected]/kuchida1981/dockerfile-subversion-httpd.git subversion-httpd
docker コマンドでビルドします.
root ユーザでログインできるなら, sudo は不要です.
$ sudo docker build -t subversion-httpd-debug subversion-httpd
会社のチーム内等でよく用いられる, redmine+subversion といった形態の開発体制は, オフィシャルイメージのredmineと組み合わせて実現できます.
docker-compose.yml でまとめて面倒みるサンプルです.
version: '2'
services:
db:
image: postgres
environment:
- POSTGRES_USER=redmine
- POSTGRES_PASSWORD=secret
ports:
- "25432:5432"
restart: unless-stopped
vcs:
image: kuchida1981/subversion-httpd
ports:
- "20080:80"
environment:
- SVN_DEFAULT_USER=kosuke
- SVN_DEFAULT_USER_PASSWD=kosuke0
restart: unless-stopped
redmine:
image: redmine
links:
- db
- vcs
ports:
- "23000:3000"
restart: unless-stopped
subversion/httpをホストOSの20080番に, redmineのデフォルト3000番ポートをホストの23000番にポートフォワードしています. ついでにメンテ用にpostgresqlのデフォルト 5432番もホストの25432番に転送しています.
Content type
Image
Digest
Size
74.8 MB
Last updated
about 10 years ago
docker pull kuchida1981/subversion-httpd