継続的ブログ

主にweb系の技術について書いています

New RelicでDockerコンテナ監視 - Elastic Beanstalk

現在Elastic BeanstalkのMulti-Container Docker環境を使っています。

New Relicを使ってコンテナを監視するようにしたので設定をメモ。
公式のドキュメントがだいぶ丁寧なので、ほとんどその通りなのですが。。。

設定ファイルを追加するだけ

  • .ebextensions/newrelic.config
packages:
  yum:
    newrelic-sysmond: []
  rpm:
    newrelic: http://yum.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm
commands:
  "01":
    command: usermod -a -G docker newrelic
  "02":
    command: nrsysmond-config --set license_key=YourNewRelicLicense 
  "03":
    command: echo hostname=NameOfYourServer >> /etc/newrelic/nrsysmond.cfg
  "04":
    command: /etc/init.d/newrelic-sysmond start

あとは.ebextensionsとDockerrun.aws.jsonをzipにしてdeployするだけです!

参考

DockerでWhenever(gem)が動かなくてハマった話

久々の更新です。
最低でも月1で書きたいなあと思ってたのですが、2ヶ月以上も空いてしまいました。
最近はRailsはもちろんのこと、React NativeやDockerもバリバリ使ってます!

さて、標題の件ですが、いやー、かなりハマりました。

現在、開発環境にDocker(Docker Compose)を使って、Railsアプリを開発しています。
そして、crontab管理にwheneverというgemを使っています。

コンテナでcronを動かしたいなと思ったのですが、なかなかうまくいかない。。。
cronをインストールして、起動して、wheneverのコマンドでcrontabの設定も完了したのですが、実行時間になるとwheneverのログにエラーが。

Could not find rake-10.5.0 in any of the sources (Bundler::GemNotFound)

crontabに設定されているコマンドをdocker-compose run等で実行すると正常に実行される。

いろいろ調べて下記サイトに辿り付きました。

support.aptible.com

qiita.com

環境変数を渡してあげなきゃいけないみたいです。

一番目のリンクの通り、config/schedule.rbにENV.each { |k, v| env(k, v) }を追記したらうまくいきました。

ghq + peco!じゃなくて fzf連携

対象

ghq + fzf

よく ghq + peco でやってる記事が挙がってますが、それのfzf 版です。
ghq で管理しているリポジトリのパスをインクリメンタルサーチして、選択すると、cdするスクリプトです。

frepo() {
  local dir
  dir=$(ghq list > /dev/null | fzf-tmux --reverse +m) &&
    cd $(ghq root)/$dir
}

f:id:akiza:20160129142308g:plain

私も最近 fzf 使い始めたばかりなので、fzf 使いの方、良い情報あったら教えてください!

最後に

おい、peco もいいけど fzf 使えよ - Qiita

この記事を見てから、fzfを使うようになりました。
素晴らしい記事をありがとうございました!

Docker QuickStart Terminal(Docker Toolbox)でi/o timeout

環境

最近Docker Toolbox使ってDocker触ってないなあということで、久しぶりに触ってみました!
Docker QuickStart TerminalがiTermにも対応したらしいので、VirtualBoxと併せてアップデートして、Docker QuickStart Terminalを起動!
したのですが、下記エラーが出てうまく動かなくなってしまいました。。。

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: i/o timeout

いろいろ調べて、なんとか下記手順で動くようになりました!

$ docker-machine rm default
$ docker-machine create --driver virtualbox default
# .zshrcに追記
eval $(docker-machine env default)

ご参考まで。

参考

Pull Request本文のフォーマットを決めて、そのテンプレートをデフォルト表示

追記
(2015/12/14)こっちの方がいいかもですね。。。
Git のコミットメッセージをテンプレート化する - Qiita

初回の空コミットのコミットメッセージにテンプレートを入れるようにする

うちではWIP PRによる開発運用をしています。
PR本文のフォーマットは特に決まってませんが、

  1. フォーマット決めたらもっと捗るよね!
  2. フォーマットのテンプレート的なものをデフォルトで表示して、そこを埋めていく感じにすれば、より捗るよね!

ということになり、最初に作成する空コミットを、コミットメッセージにテンプレートを付けて作成するシェルを作りました。
そうすれば、PR作った時に、本文にテンプレートが表示されるというわけです。
やってることはかなり単純です。

#!/bin/sh

echo ${1:?"コミットメッセージを入力してください!"}

git commit --allow-empty -F- <<EOF
[WIP] $1

## 概要

## 仕様

## TODO

## その他

EOF
$ sh create_wip_commit.sh hoge機能実装

とりあえずこんな感じで実行して、プッシュ、PRを作成する感じです。
毎回このコマンド実行するのもちょっとダサいので、自分はgit aliasに設定しています。

思いつきでやったので、もっといい方法はありそうだけど。。。
他にいい方法知ってるよって方は教えて下さい!

iTunes Connectでユーザー追加できない(2015/10/14時点)

招待メールの「activate your account」を押しても、白画面になってしまいます。
9日くらいからずっとこの状態みたいです。
早く直してもらいたいですが、それまで待てないという方は以下の方法で一応解決できます。(試す方は自己責任でお願いします)

手順

  1. ChromeアクティベーションURLを開く
  2. デベロッパツールを開く(MAC→「Cmd-Alt-I」、Windows→「Ctrl-Shift-I」)
  3. Sourcesタブをクリック
  4. main.jsを開く( itunesconnect.apple.com/itc/static-resources/main.js )
  5. 20行目の "idmsauth-stable.corp.apple.com" を "idmsa.apple.com" に変更
  6. main.jsのソースを全てコピーする
  7. consoleタブを開く
  8. 6でコピーしたmain.jsを貼り付ける
  9. Enterを押す

参考