38
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

社内開発で使ってるSinatra + Datamapper + Heroku + Dockerの簡易テンプレート for Mac

Last updated at Posted at 2016-08-07

なぜ?

社内システムは、なるべくクラウドの既製品を使うという方針でIT部を運営していますが、ちょっとしたバッチ処理、自動監視、データ転送・変換処理なんかは自分で開発したほうが早かったりします。
そういった処理を実現するために、社内サーバを用意するのは面倒なので、Herokuを使ってサクっと作ってしまおうということを繰り返してきた結果、なんとなくテンプレートのようなものができたので、ここに公開しておきます。

なんでDockerを使うの?

自分のMacの環境をできるだけ汚さないようにするためです。特にMacの場合はRubyの環境がmacOSのバージョンアップの度に大きく変わって、つらい思いをしたのでDockerでHeroku相当の環境を作成する方針を取っています。

開発環境

  • 個人のMacbook(弊社はBYODを認めてます)
  • OS X El Capitan (10.11.6)
  • Docker for Mac(最近までは Docker Toolboxでした)

使い方

git@github.com:maloninc/quickherokuapp.git
cd quickherokuapp
rake

http://localhost:9292 へブラウザでアクセスすると下記のような画面が表示されます。

スクリーンショット 2016-08-06 13.08.38.png

あとは、要件に応じて適宜、ソースコードを改修していきます。

テンプレートの構成

- Dockerfile
- Gemfile
- Rakefile

# 以降はSinatraウェブアプリケーションの構成
- app.rb
- configu.ru
- env
+ public
  + css
    - app.css
  + js
    - app.js
- resources.rb
+ views
  - index.haml

Dockerfile

Herokuが公開しているcedarスタックのイメージをFROM heroku/cedar:14で呼び出して、rubyのbuildpackをインストールしています。

Gemfile

Sinatra + Datamapperのウェブアプリケーションを開発するために必要なGemを指定しています。Datamapperのデータベースは、ローカルの環境ではSQLiteで、本番環境ではPostgreSQLになるようにしています。

Rakefile

dockerコマンドを覚えられないので邪道ですが、以下の様なよく使う機能をタスクとして定義しています。

  • ウェブアプリケーションをサーバとして起動: rake
  • ジョブとしてとして起動: rake run_job
  • シェルの起動: rake shell
38
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?