HerokuのReviewApps(New)でCollaboratorでもReview Appの管理画面にアクセスしたい
はじめに 仕事でもプライベートでもHerokuを使い続けている須貝です。 Herokuユーザーの方ならおそらく使っていると思うReview Appsですが、すこし前に新バージョンが登場しました。 ...
はじめに 仕事でもプライベートでもHerokuを使い続けている須貝です。 Herokuユーザーの方ならおそらく使っていると思うReview Appsですが、すこし前に新バージョンが登場しました。 ...
はじめに 毎度お馴染みSaaS、PaaSが大好きな当ブログでございます。 HerokuにはReview Appsなる機能がありまして、これはGitHubのプルリクエストごとに動作確認用のアプリケーションをさくっと立ち上げてくれる便利なやつです。このReview Apps、一度使いますと「俺はもうReview Appsのない世界には帰ることができない」と思わせてくれるほどです。Review AppsのためだけにHerokuを使っても良いとすら私は思っています。Herokuの最高にイケてる機能のひとつです。 で、そのReview Appsがどうやら新しくなるらしく「Public Betaを試せるよ」という通知が管理画面に来ていたのでこれは試してみるしかないなという次第です。 ...
はじめに HerokuにはHeroku Container Registry & RuntimeというHerokuでDockerベースのアプリケーションを実行できる非常に便利なサービスがあります。さらに便利なことにdynoのタイプ(web, workerなど)ごとに異なるimageをプッシュできるのです。 が、たとえばweb dynoとHeroku Scheduler経由で実行するscheduler dynoのimageを分けることってできるのか? という疑問がわいてきたので調べてみました。 ...
はじめに 訳あってとあるHeroku上のRailsアプリで使っているDBをHeroku PostgresからGoogle Cloud SQLにしようと思ったのですが、DATABASE_URLを書き換えようとしたらCannot Overwrite Attachment Values DATABASE_URLと言われてしまいました。 ...
はじめに Herokuで実際にアプリケーションを運用していると機能の追加に伴って環境変数を追加したり、アドオンを追加したりすることがあると思います。 そして、これらは手作業で行うことが多いです。ごく少人数で開発しているときはそれでもなんとかなるのですが、開発者が増えたり、開発者のレベルにばらつきが出てくるとコードで管理してリリースする前にレビューを行いたいと思うようになってきました。 現在developer previewで公開されているheroku.ymlというマニフェストファイル的な機能がゆくゆくはそういうものになっていってほしいなあと個人的に考えているのですが、現状はどちらかというとアプリケーションのbuildをシンプルに記述できるようにするのが目的のようなので、本番環境で参照する環境変数を管理したり、アドオンを管理したりする機能はありません。となると、現状で私のニーズを満たしてくれる最有力候補はTerraformになりそうです。 前置きが長くなりましたが、Terraformを試してみたいと思います。 ...
はじめに 以前、Herokuでheroku.ymlなるものが使えるようになったので試してみたのですが、個人開発でHeroku運用しているRailsアプリケーションにもheroku.ymlを導入してみたいと思いちょっと手を動かしてみました。 なお、heroku.ymlはまだdeveloper previewですのでご注意ください。 まずはreview appsで動作確認をしてみる ドキュメントに従ってProcfileを削除して、代わりにheroku.ymlを追加。 githubにpushしてreview appを作成します。 ただしheroku.ymlを導入する際の手順としてheroku stack:set containerを実行してstackの種類をcontainerにしておく必要があるのでreview appが立ち上がった後にこのコマンドを実行する必要があります。 review appが作成された後にstackをcontainerにします。 $ heroku stack:set container --app xxx-xxx-xxxx-pr-143 Stack set. Next release on ⬢ xxx-xxx-xxxx-pr-143 will use container. Run git push heroku master to create a new release on ⬢ xxx-xxx-xxxx-pr-143. 次のリリースからcontainerになるよと言っているので、このコマンドを実行することで再度stackを変えてアプリを作り直すみたいなことはありませんでした。安心。 再度review appにdeployするとheroku.ymlが有効になってDockerイメージのビルドが始まります。 === Fetching app code Sending build context to Docker daemon 569.9kBStep 1/16 : FROM heroku/heroku:16-build as build 16-build: Pulling from heroku/heroku 22dc81ace0ea: Pulling fs layer ... これでheroku.ymlを利用してreview appをデプロイできることが確認できました。 余談:環境変数の設定について ちなみに私のアプリケーションの場合、build中に環境変数を参照している箇所があったのでbuildがコケました。 そんなときはheroku.yml内のconfigに環境変数を設定するのですが、ドキュメント通りに書くとbuildが失敗します。 【追記】Herokuのドキュメントが間違っていたらしく、中の人にメールして直してもらいました。やはり環境変数は配列ではなくハッシュで指定するのが正しいようです。 最初にやってみたのは下記のような感じ。 build: languages: - ruby config: - AIRBRAKE_PROJECT_ID: 123456 ... すると下記のようなエラーが出ます。 === Fetching app code failed =!= Your heroku.yml isn't valid YAML. Try validating your YAML and fixing the errors: http://www.yamllint.com/ configの引数を配列ではなくハッシュにするとビルドが通りました。 build: languages: - ruby config: AIRBRAKE_PROJECT_ID: 123456 ... production環境に導入してみる 本番環境に導入したら更新します。 おわりに 実際に動いているアプリに導入してみようと思うとやっぱり色々ありますね。 ここで力尽きたので、本番に導入してみたらまた更新します。 ...
はじめに Herokuでheroku.ymlなるものが使えるようになった(ただしdeveloper preview)ということなのでどんなものなのか調べつつ実際に試してみた。 heroku.ymlとは かなり推測まじりだが、要点をまとめると下記のような感じだろうか。 ...