社内のWindowsPCにGitBucket

# 環境
Windows 7 Professional
Docker Toolbox 1.12
GitBucket 4.4

PCに割り当てられた社内LANのIPアドレスは **123.45.67.89** ということにしておく。

# 参考
[Docker ドキュメント日本語化プロジェクト](http://docs.docker.jp/)
[Docker で GitBucket を立てて遊んでみた](https://blog.f99aq8ove.net/2014/05/07/gitbucket-on-docker.html)
[Docker初心者が遭遇するエラーをまとめてみた](https://techblog.recruitjobs.net/development/docker-beginner-error)

# 手順
## 色々
### Hyper-V を無効化
コマンドラインから以下を実行し再起動。

```
bcdedit /set hypervisorlaunchtype off
```

### VT-X を有効化
bios の設定からそれっぽい所を有効にする。
HPのPCの場合は[このあたり](http://h20564.www2.hp.com/hpsc/doc/public/display?docId=emr_na-c02020824)が参考になった。
1.起動時にF10を押してBIOSメニューに移動
2.セキュリティ>システムのセキュリティからそれっぽい所を有効にする。

## Docker Toolbox をインストール
[このあたり](http://docs.docker.jp/windows/step_one.html)を参考にインストールする。
インストール後、「Docker Quickstart Terminal」を起動し、以下のコマンドを実行。

``` 
docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://example.com:8080 \
--engine-env HTTPS_PROXY=https://example.com:8080 gitbucket
```

社内の場合、プロキシを通さないと通信ができないため、
環境変数**HTTP_PROXY**、**HTTPS_PROXY**を設定したdocker-machine(名前がgitbucket)を作成。
ついでに証明書の再作成を行う。

```
docker-machine regenerate-certs gitbucket
```

終了したら Docker ホストの再起動

```
docker-machine restart gitbucket
```

再起動したら、docker-machineのアクティブを変更するために以下のコマンドを実行。
docker-machine のアクティブは 環境変数 $DOCKER_HOST の値によって決まるらしい。

```
eval $(docker-machine env gitbucket)
```

一応、通信ができるか確認するために whalesay を実行してみる。

```
docker run docker/whalesay cowsay boo

----
中略
----
 _____
< boo >
 -----
    \
     \
      \
                    ##        .
              ## ## ##       ==
           ## ## ## ##      ===
       /""""""""""""""""___/ ===
  ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
       \______ o          __/
        \    \        __/
          \____\______/
```

クジラが喋ればOK。

## Dockerfile 作成
検索するとたくさん出てくる。
[このあたり](https://github.com/takezoe/gitbucket-docker/blob/master/4/Dockerfile)を参考にさせてもらい作成。

```:Dockerfile
FROM java:8-jre

MAINTAINER hogehoge

ADD https://github.com/gitbucket/gitbucket/releases/download/4.4/gitbucket.war /opt/gitbucket.war

RUN ln -s /gitbucket /root/.gitbucket

VOLUME /gitbucket

# Port for web page
EXPOSE 8080

CMD ["java", "-jar", "/opt/gitbucket.war"]
```

ひとまず、 **D:\work\gitbucket** に配置。
Docker Terminalのコマンドライン上で work/gitbucket へ移動する。

```
cd /d d:\work\gitbucket
```

## Docker イメージ作成＆実行

```
docker build -t gitbucket ./
```

成功するとイメージができあがるので、実行する。

```
docker run -d -p 8080:8080 gitbucket
```

反応が無ければ成功しているハズ。

## Virtual Box のポートフォワード設定
![virtualbox.jpg](https://qiita-image-store.s3.amazonaws.com/0/119600/2239fb3c-4ede-8ee5-8fb4-2a52668b6333.jpeg)

1.「Oracle VM Virtual Box」を起動。
2.gitbucket を右クリックして「設定」を選択。
3.ネットワーク > アダプター1 > 高度 > ポートフォワーディング を選択。
4.既にsshの設定は追加されているので、httpの設定を以下のように追加

| 名前 | プロトコル | ホストIP      | ホストポート | ゲストIP | ゲストポート |
|:----:|:---------:|:------------:|:-----------:|:--------:|:-----------:|
| http | TCP       | 123.45.67.89 | 8080        |          | 8080        |
| ssh  | TCP       | 127.0.0.1    | 51290       |          | 22          |


## 完了
http://123.45.67.89:8080/ にアクセスして以下のような画面が出れば完了。
Username:root/Password:root でログインできる。

![gitbucket.jpg](https://qiita-image-store.s3.amazonaws.com/0/119600/0676c560-efae-37a2-06cd-278e8de7b210.jpeg)