そろそろ個人用の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
参考
以下のサイトを参考にさせていただきました、ありがとうございます。