初心者がCnetOS7+DockerにRedmineを立ててみる

CnetOS7 や Docker についてまったくの素人が、とりあえず動かしてみることを目標にしています。

# やりたいこと
CentOS7のインストール直後を想定して
1．CentOS7 に Docker をインストールする。
2．CentOS7 に Docker Compose をインストールする。
3．sameersbn/redmine を使って、Docker に Redmine を構築する。

# 前提条件
* プロキシを使う。
* デフォルトゲートウェイを使う。
* プライベートIPは固定する。

# OS/アプリ
|OS/アプリ  |バージョン  |
|---|---|
|[CentOS](https://www.centos.org/)  |7.1.1503  |
|[Docker](https://www.docker.com/)  |1.6.2  |
|[Docker Compose](https://docs.docker.com/compose/) ※1  |1.3.1  |
|[sameersbn/redmine](https://github.com/sameersbn/docker-redmine) ※2  |3.0.3-1  |
手順に沿った場合、その時の最新版がダウンロードされるものもあります。
※1 Docker Compose は開発中だそうです。
※2 sameersbn/redmine は Redmine/3.0.3 と PostgreSQL/9.4 のコンテナからなります。


# 手順
まず、CentOS7 の設定を変更します。

**1．SELinux を無効化**
　無効化しておかないと、セキュリティ制御の影響で sameersbn/redmine のコンテナ作成が進行しません。

```
vi /etc/sysconfig/selinux
```

```ruby:selinux
SELINUX=disabled
```

　SELinux の変更を適用するために、再起動します。

```
reboot
```

**2．ネットワークの設定**
　プライベートIPとデフォルトゲートウェイを設定します。

```
nmtui
```

```ruby:NetworkManager
1.「Edit a connection」を選択
2.ネットワークに接続するデバイスを選択
  ex)enp0s3
3.「IPv4 CONFIGURATION」を「Manual」に変更
4.「show」を選択
5.「Addresses」にプライベートIPとサブネットマスクを入力
  ex)192.168.1.2/24
6.「GATEWAY」にデフォルトゲートウェイを入力
  ex)192.168.1.1
7.「OK」を選択
8.「Quit」を選択
```

　変更を反映します。

```
systemctl restart network.service
```

　ネットワークインターフェースを有効化します。

```
ifup <デバイス名>
```

**3．プロキシの設定**

```
vi /etc/profile
```

```ruby:profile
最終行に追加
HTTP_PROXY ="http://<プロキシサーバのIP>:<ポート>/"
HTTPS_PROXY="http://<プロキシサーバのIP>:<ポート>/"
http_proxy ="http://<プロキシサーバのIP>:<ポート>/"
https_proxy="http://<プロキシサーバのIP>:<ポート>/"
export HTTP_PROXY HTTPS_PROXY http_proxy https_proxy
```

　変更を反映します。

```
source /etc/profile
```

**4．CentOS7 のアップデート**

```
yum update -y
```

**5．wget のインストール**

```
yum install -y wget
```

以上で、CentOS7 の設定は終わりです。
次に、Docker をインストールします。

**6．Docker のインストール**

```
yum install -y docker
```

　Docker をサービス登録します。

```
systemctl enable docker.service
```

**7．Dockerのプロキシの設定**
　CentOS7 のプロキシ設定とは別に、こちらも設定しないと、Dockerイメージなどがダウンロードできません。

```
cp /usr/lib/systemd/system/docker.service /etc/systemd/system/
vi /etc/systemd/system/docker.service
```

```ruby:docker.service
ExecStartの上に
Environment="http_proxy=http://<プロキシサーバのIP>:<ポート>/"
Environment="https_proxy=http://<プロキシサーバのIP>:<ポート>/"
```

　変更を反映します。

```
systemctl daemon-reload
```

**8．Dockerを起動**

```
systemctl start docker.service
```

以上で、Docker のインストールは終わりです。
次に、Docker Compose をインストールします。

**9．Docker Compose のインストール**

　Docker Compose をダウンロードします。

```
wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/1.3.1/docker-compose-`uname -s`-`uname -m`
```

　と書きましたが、私が試した環境ではダウンロードすることができませんでした。プロキシやデフォルトゲートウェイの他にアクセスを遮断する仕組みがあるのでしょうか。リダイレクトのせいでしょうか。仕方がないので、別環境にある端末でダウンロードし、本来入れたかった端末にコピーしました。

　アクセス権を変更する。

```
chmod +x /usr/local/bin/docker-compose
```

以上で、Docker Compose のインストールは終わりです。
次に、sameersbn/redmine のコンテナを作ります。

**10．sameersbn/redmine のコンテナ作成**
　sameersbn/redmine の docker-compose をダウンロードします。

```
wget https://raw.githubusercontent.com/sameersbn/docker-redmine/master/docker-compose.yml
```

　docker-compose からコンテナを作成します。

```
docker-compose up -d
```

　しばらく待てばコンテナの作成が終わります。

以上で、Redmine が使えるようになっているはずです。
下記にアクセスしてみましょう。

```
http://<プライベートIP>:10083

username: admin
password: admin
```

# 最後に

とりあえず動かせるようになったので、これをベースに慣れていけばいいかと思います。
お疲れ様でした。