はじめに
身につけたスキルや勉強法、便利なツールなどを会社のみんなで共有する場が欲しくてAdvent Calendarをやろうと思ったのですが、外部に公開するのも気が引けるので社内だけでワイワイやれるクローズドな環境を作りました。
Githubで公開されているradventを使わせてもらって作成したDockerイメージからコンテナを作成するだけです。
12月まであとわずかですが、15分で環境ができるならまだ間に合いますよ!
必要なもの
- Docker環境(今回はEC2にインストール)
- アクセスコントロール(今回はAWSのセキュリティグループを使用して会社のグローバルIPアドレスからのみEC2へのアクセスを許可)
所要時間
- インスタンス作成(5分)
- Dockerインストール(5分)
- コンテナ作成/radvent起動(5分)
手順
インスタンス作成
今回はUbuntu16.04を使いました。手順は省略します。
Dockerインストール
公式サイト参照
コンテナ作成
インスタンスへSSHアクセスして以下のコマンドを実行
sudo docker run -it --name <containername> -p <port>:3000 mongamaenioh/radvent:latest /bin/bash
containername = 任意のコンテナ名
port = リッスンするポート番号(もちろん任意で指定できますがnetstatなどでListenしていないか前もって確認しましょう)
3000はコンテナ側のポート(Railsなので)
これでコンテナが作成されて中に入ります。
radvent起動
cd /home/radvent
export SECRET_KEY_BASE=`bundle exec rake secret`
bundle exec rails server -e production
以下のようにListeningになれば成功です。
=> Booting Thin
=> Rails 4.1.7 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Thin web server (v1.7.0 codename Dunder Mifflin)
Maximum connections set to 1024
Listening on 0.0.0.0:3000, CTRL+C to stop
アクセスコントロール
セキュリティグループのインバウンドルール設定でポート範囲にportで指定したポート番号、ソースに会社のグローバルIPアドレスを入力して保存(このキャプチャだとソースで全許可してしまってますが適宜変更してください。ポート番号は2017年なので2017としました。)
記事作成
ブラウザから**http://EC2のパブリック側アドレス:指定したポート番号**へアクセスすると以下のような画面が表示されます。
参加登録から記事を作成しましょう。
登録した日になれば記事が公開されます。
おまけ
開始終了日の設定(来年以降は別のコンテナ作って設定変更すればOK)
module Constants
#Set advent calendar date
YEAR = 2018
MONTH = 12
START_DAY = 1
END_DAY = 25
end
タイトルの変更(会社名などを入れてそれらしく)
%h1 <ここに会社名とか> Advent Calendar #{Constants::YEAR}