Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

なぜ?

社内システムは、なるべくクラウドの既製品を使うという方針で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
maloninc
IT部 はじめました。
http://maloninc.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした