そろそろ個人用のredmineとGitBucketが欲しいと思い、 どうせならどこからでもアクセスできるようAWSのec2にインストールしてしまおう! ってことで、手順をまとめました。 AWSのアカウントやEC2のインスタンスは作成している前提で話を進めます。

インストール手順

open-sshのconfigファイル作成

接続できればなんでもいいのですけど、設定してしまえば今後楽なので。

$ vi ~/.ssh/config

configファイルの中身はこのように記述する。

Host aws
  HostName [お持ちのEC2のホスト名]
  User ec2-user
  IdentityFile ~/.ssh/control-keypair.pem (鍵へのパス)

AWSのEC2へ接続

$ ssh aws

dockerをインストール + 起動 + 確認

(aws)$ sudo yum update -y
(aws)$ sudo yum install -y docker
(aws)$ sudo service docker start
(aws)$ sudo service docker status
(aws)$ sudo docker info

場合によっては、dockerコマンドを反映させるにはAWSへの再ログインが必要になるかもしれません。 上手く行かない場合は、再ログインを試してみてください。

docker-composeをインストール + 確認

ec2-userだと-bash: /usr/local/bin/docker-compose: Permission deniedとなってインストールできなかったので、 rootユーザで実行します。

(aws)$ sudo su
(aws)$ curl -L --fail https://github.com/docker/compose/releases/download/1.14.0/run.sh > /usr/local/bin/docker-compose
(aws)$ chmod +x /usr/local/bin/docker-compose
(aws)$ /usr/local/bin/docker-compose -v

/usr/local/bin/docker-compose -vコマンドでバージョンが表示されたら成功です。

dockerコンテナの作成

redmine + gitbucketのdocker-compose.yml作成

私の場合はworks/redmine_gitbucket/にファイルを置くことにしました。

(aws)$ mkdir -p works/redmine_gitbucket/
(aws)$ cd works/redmine_gitbucket/
(aws)$ vi docker-compose.yml
version: '2'

services:
  redmine:
    image: redmine
    ports:
      - 3000:3000
    environment:
      REDMINE_DB_MYSQL: db
      REDMINE_DB_PASSWORD: redmine
    depends_on:
      - db
    restart: always

  db:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: redmine
      MYSQL_DATABASE: redmine
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    restart: always

  # gitbucket
  gitbucket:
    image: f99aq8ove/gitbucket
    ports:
      - "29418:29418"
      - "8080:8080"
    volumes:
      - ./gitbucket-data:/gitbucket
    command: java -jar /opt/gitbucket.war --prefix=/gitbucket

docker-composeのファイルはversion2で作成しました。 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ciは、 日本語対応をするために必要な設定みたいです。

起動

上記の設定ファイルを作成したら、下記コマンドで起動しましょう。

(aws)$ /usr/local/bin/docker-compose up -d

動作確認

[root@~~~~~ redmine_gitbucket]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
5801173d8343        redmine               "/docker-entrypoin..."   5 seconds ago       Up 4 seconds        0.0.0.0:3000->3000/tcp                             redminegitbucket_redmine_1
1475f201ccb1        f99aq8ove/gitbucket   "java -jar /opt/gi..."   6 seconds ago       Up 5 seconds        0.0.0.0:8080->8080/tcp, 0.0.0.0:29418->29418/tcp   redminegitbucket_gitbucket_1
9c34d7963a56        mariadb               "docker-entrypoint..."   6 seconds ago       Up 5 seconds        3306/tcp                                           redminegitbucket_db_1
[root@~~~~~ redmine_gitbucket]#

docker ps -aコマンドで、各コンテナが起動していることと、ポートマッピングがされていることを確認します。

EC2セキュリティグループの修正

AWSのEC2のセキュリティーグループのインバウンドは、

タイプ プロトコル ポート範囲 ソース
カスタム TCP ルール TCP 3000 限定するなら[自身のIP/32]など
カスタム TCP ルール TCP 8080 限定するなら[自身のIP/32]など
カスタム TCP ルール TCP 29418 限定するなら[自身のIP/32]など

と設定し、外部からアクセスできるようにします。

アクセス

GitBucketへのアクセス

http://\[AWSへのIP\]:8080/gitbucket/ 初期のIDとパスワードは、root:rootです。

redmineへのアクセス

http://\[AWSへのIP\]:3000 初期のIDとパスワードは、admin:adminです。

画面が表示されたら成功です。 これで快適なボッチ開発生活を満喫することができる!!!

その他

コンテナを削除する場合
(aws)$ /usr/local/bin/docker-compose rm

参考

以下のサイトを参考にさせていただきました、ありがとうございます。