※ 会社の esa.io に投稿した記事の転載です。
本番環境で DB の値を書き換えるために、rails runner や rails console を使うことがある。bash もあるかもしれない。
$ heroku run rails r scripts/important.rb -a <App Name> # or $ heroku run rails c -a <App Name>
heroku run のログは現在の端末だけにしか出力されない。アプリのログには出力されないため、LogDNA や Papertrail などにも記録されない。
現在の端末を閉じてしまうと、ログが消失するため十分注意すること。
↓ 以下のような非対話型コマンドであれば、run:detached サブコマンドを使うことで、LogDNA などに送ることが出来る。ただし、現在の端末には出力されない。
・rails runner
・ls
↓ 対話型コマンドは今回の方法は使えない。他の回避方法があるかは不明。
・rails console
・bash
《続きを読む》
先月、固定 IP アドレス機能を提供する QuotaGuard Static Add-on の Buildpack を作りました。
- https://github.com/masutaka/heroku-buildpack-qgsocksify
- https://github.com/masutaka/heroku-buildpack-qgtunnel
Buildpack を自作したのは今回が初めてです。
Add-on のドキュメントの通りにインストールすると、バイナリファイルをリポジトリに commit することになります。あまりきれいな方法に思えなかったことが、これらの Buildpack を作った動機です。
Buildpack を作ってみて、それがどのようにインストールされるか興味が湧いたので、詳しく調べてみました。
《続きを読む》
[2019-01-19-1] で Heroku の Hobby Dyno ($7/mo) を使い始めたので、Heroku CI も導入してみました。
やり方はこのとおり簡単です。
1. pipeline を作成し、app と紐付ける
2. Heroku CI を有効にし、GitHub とも連携する
3. app.json を作成する
《続きを読む》
個人の通知ツールとして、Pushover を愛用しています。[2015-03-08-1] でも紹介してます。
- GitHub の自分のリポジトリにスターが付いたら通知
- Pushover gem を使った、若干複雑なケースのデプロイ通知
- Heroku にデプロイしたら通知
今まで Heroku のデプロイ通知は Heroku Deploy Hooks の Email に Pushover の E-mail Gateway を指定して出来ていましたが、Heroku Deploy Hooks の Email は 2018 年 5 月に Deprecate になっていました。
仕方がないので、Heroku Deploy Hooks の HTTP post hook で通知する方法を調べました。
《続きを読む》
ここ一年半くらい、このブログが乗っていたサーバをメンテンスしていませんでした。4月に Ubuntu 14.04 LTS が EOL になることと、サーバの面倒をみることに疲れてしまったので、このブログを CloudFront+Heroku に移しました。
さくらのVPSに引っ越したのは [2013-05-27-2] だったので、5年半くらい使っていたことになります。このブログ自体は静的コンテンツですが、nginx のログを fluentd に流したり、各種メトリクスを kibana や GrowthForecast で可視化したり、ちょっとしたアプリケーションを動かしたり、いろいろ実験や素振りをすることが出来ました。今までありがとう。
さて、引っ越し前後の環境の変化です。
《続きを読む》
この記事は heroku Advent Calendar 2018 の 21 日目の記事です。
20 日目は @pukka さんの『【Heroku検討者向け】デプロイ方法5選!』でした。(4)マニフェストでの heroku.yml の使い方は初めて知りました。デプロイしたところ、heroku18 Stack の Docker Image が使われているようでした。Slug を作る従来の非 Docker デプロイも Docker に寄せられていくのかな?
今日はそんな Slug に注目した記事をお届けします。
《続きを読む》
これは Redash Advent Calendar 2018 の 17 日目の記事です。
16 日目は @mazamachi さんの『kubernetess の redash か黒魔術』ですが、まだ投稿されていないようですね。今回の記事にも関連するので期待してます。
1 日目の『2018年12月現在における Redash のはじめかた』を拝見しました。実際問題、どこに立てれば良いか、悩む方もいらっしゃるのではないでしょうか。今回はその点をまとめていきます。
《続きを読む》
この記事は heroku Advent Calendar 2018 の 13 日目の記事です。
12 日目もわたくしマスタカの当番で、内容は『Heroku の Preboot 機能を深掘りした』でした。その気になればドキュメント以上のことを探れることは、Heroku のメリットだと感じています。
今日は Heroku の BitBar plugin を紹介します。macOS 限定です。
《続きを読む》
https://herokujp.doorkeeper.jp/events/82754
最近業務で Heroku 周りのことを一手に引き受けています。社内に本番環境での知見はあまりないので、参加してきました。
参加は初なんですが、前回の記事 [2018-11-21-1] を Slack の HerokuJP User Group にシェアしたら成り行きで話すことに。LT 以外で外で話すのは初でしたが、良い意味でこじんまりした Meetup で、割とリラックスして話せましたね。
会社の勉強会だと 20 人くらいいるので、良い訓練になっていたのかも。
《続きを読む》
先週 Building Docker Images with heroku.yml が GA になってました。
Building Docker Images with heroku.yml Is Generally Available
heroku.yml は使ったことがなく、最近 Redash を Docker on Heroku で
立て、モチベーションが上がっているので、早速試してみました。
今までの方法と比較しながら、気づいたことを中心にまとめていきます。
《続きを読む》
タイトルは少し端折っていて、正確には ~/.zshrc に以下の設定が必要です。
# $FPATH 以下にある補完コレクションを使う。 autoload -Uz compinit; compinit -u
これは Heroku CLI 固有の設定ではありません。ls や git などにも適用
される補完を有効にする設定です。
macOS High Sierra 付属の zsh の $FPATH デフォルト値です。
$ echo $FPATH | tr ':' '\n' /usr/local/share/zsh/site-functions /usr/share/zsh/site-functions /usr/share/zsh/5.3/functions
このように補完が効きます。App の補完はうれしい。
《続きを読む》
俺得な保存版記事です。設定するたびにやり方を思い出すのが面倒になり。
GitHub の Personal access tokens のページで token を作成し、
CircleCI の Project Setting -> Environment variables に
GITHUB_ACCESS_TOKEN という名前で追加します。
CircleCI の URL は以下になります。
https://circleci.com/gh/{ユーザ名}/{リポジトリ名}/edit#env-vars
《続きを読む》
CircleCIを使ってbundle updateを定期実行する - Qiita
こちらの「1. CircleCIを起動する」のシェルスクリプトをRubyスクリプ
トにしてみました。Herokuボタンで簡単に設置できます。
masutaka/ci-build-trigger
A trigger of bundle update
《続きを読む》
他の人に見せたくない静的コンテンツは、ローカルのnginx経由で見られ
るようにしていたんだけど、いろいろ面倒になってきたのでHerokuに置き
始めた。
やり方は簡単で、以下のリポジトリのHerokuボタンを押すだけ。
masutaka/heroku-static-contents
public以下に.htmlとかをcommitして、git push heroku masterすればOK。
BASIC認証も使えて便利。
Herokuボタンがリリースされました。
Heroku|Introducing Heroku Button
詳しくはnaoyaさんの記事をどうぞ。
Deploy to Heroku / Webアプリケーションのポータビリティ再び - naoyaのはてなダイアリー
ざっくり言うと、これだけでGitHubの任意のブランチをHerokuにデプロイ出来ます。
- GitHubにHerokuで動くコードを置く
- 上記リポジトリのrootにapp.jsonを追加する
- README.mdにHerokuボタンを追加する
もちろんHerokuアカウントは必要です。
《続きを読む》
使っているのはこんな環境です。
- HerokuにRailsのProductionとStaging環境がある。
- Stagingで任意のブランチを動かしたいことがある。
今までHerokuにデプロイする時はこうしてましたが、
$ git push prod master
今後はこのようになりました。
$ bundle exec rake deploy:prod
Dryrunも出来ます。
$ bundle exec rake deploy:prod DRYRUN=1
Stagingで任意のブランチを動かしたい時はこちら。
$ bundle exec rake deploy:staging BRANCH=<any-branch>
《続きを読む》
通知特化型Twitterアプリ「29hours」をつくってHerokuで動かしているお話 - 準二級.jp
昨日というか今朝Heroku力がついたおかげで[2013-04-14-1]、案外簡単に
できました。
settings.ymlはだいたいこんな感じ。
twitter: my_screen_name: masutaka consumer_key: XXXXXXXX consumer_secret: XXXXXXXX access_key: XXXXXXXX access_secret: XXXXXXXX matchers: keywords: - masutaka - マスタカ - 増田 notifiers: imkayac: username: XXXXXXXX linker: http
https://dev.twitter.com/apps からアプリを作って、consumer_keyや
consumer_secretなどを埋める必要があります。やったことない人は気づく
まで時間がかかるかもしれません。
普段使っているTweetAtokは個別ツイートのURLスキーマは対応してなさそ
うでした。残念。
以下、記事の見出しと対応してます。
ここまで来ると、ローカルで普通に動きます。タイムラインがだらだら流
れていくことと、普段から使っているim.kayac.comから通知が来ることを
確認しました。
あ、今朝と同じようにgemはvender/gems以下にインストールして動作確認
しました。[2013-04-14-1]
ここはちょっとハマりました。Dropboxにsettings.ymlを置きリンクを有効
にしたんですが、29hoursは起動してないようでした。
ログを見るため、Papertrailを入れようと
% heroku addons:add papertrail:choklad
を実行したら下記のエラーメッセージ。Freeプランでもクレジットカード
情報が必要みたいです。
! Please verify your account to install this add-on
! For more information, see http://devcenter.heroku.com/categories/billing
! Verify now at https://heroku.com/verify
登録してもHerokuが混雑しているのか、エラー画面に飛ばされました(再度
Appsのページに行ったら、Papertrailがインストールされてたので良しと
した)。
ログを見たら、Rubyのパースエラーが発生してました。ためしに
% heroku config:unset SETTINGS_FILE_PATH
したあと、settings.ymlをcommitしてHerokuにpushしたところ、無事動きました!
(私以外は見られないリポジトリだから問題ないと思う)
これで通知のためだけに動かしていたTiarraのTIG(TwieetIrcGateway)は
要らなくなるのかも。そもそも最近IRC使ってないなあ。。
@june29さん、ありがとうございました!
Herokuではworkerを有効にすると、Procfileを参照するのですね。
このように書いてありました。なるほど。
worker: bundle exec ruby 29hours.rb --production
これはちょっとハマったw
(誤) $ heroku restart –app アプリ名
(正) $ heroku restart –-app アプリ名
追記(2013-04-15):
上記restartの件は、修正して下さいました。