Docker で MySQL を使った Ruby on Rails の開発環境を構築してみたので、その作業メモです。Docker for Mac のおかげで、Docker がかなり使いやすくなっていました。 — 環境 — Docker version 1.12.0 Ruby 2.3.1 Rails 5.0.0.1 Mac OS X El Capitan Docker for Mac をインストール まずは、以下の Getting Started に沿って Docker をインストールします。 Getting Started Docker でよく使うコマンド等に慣れておくと進めやすいかと。よく使うコマンドについては、以前に書いた Docker 入門記事もご参考下さい。 Docker入門、VM上でLinuxコンテナ立ち上げ〜基本操作まで | EasyRamble Docker の Rails
Reference documentation CLI reference docker (base command)docker build docker builder docker builderdocker builder builddocker builder prune docker buildx docker buildxdocker buildx bakedocker buildx builddocker buildx createdocker buildx debugdocker buildx debug builddocker buildx dudocker buildx imagetoolsdocker buildx imagetools createdocker buildx imagetools inspectdocker buildx inspectdocker
Railsアプリケーション開発を完全にDocker化する Tweet Degica のすべてのサービスは Rails で開発しており、そのうちの一部は Docker を使用した本番環境にデプロイしています。しかし開発者個人の開発環境にはいまだに Docker を導入できていません。最も大きな障害は spring を docker コンテナ内で上手く扱う方法が確立されていなかったことですが、この問題は docker-compose を工夫して利用することで解決可能であることがわかりました。 ということで、今回は rails アプリケーションの開発環境を完全に docker 化する方法を紹介します。 完全に、というところがポイントです。この方法を使えば docker 以外のツールを一切ホストマシンにインストールせずに rails アプリの開発を行うことができます。 (ちなみに、弊社の本番環境は
$ docker -v Docker version 1.12.5, build 7392c3b $ docker-compose -v docker-compose version 1.9.0, build 2585387 docker for mac install 以前はmacでDockerを使うのにVagrantにdockerを入れて操作していましたが、mac純正の仮想環境xhyveを利用するようになったためVagrantはお役御免となり、だいぶ使いやすくなったようです。 https://docs.docker.com/docker-for-mac/ Dockerfileとdocker-compose.ymlを追加 RailsのプロジェクトルートにDockerfileとdocker-compose.ymlを追加します。 Dockerfile railsの公式Docker image
追記 RailsでJS辛い問題に関しての結論:http://qiita.com/kaiinui@github/items/dad6180f1910c6a4bfd5 -- 近年、(1) Web/App両対応が増えてきたこと、(2) WebでもJSを多用するようになったこと、の二つがあり、以下の点でRailsが微妙になっている。 ViewのJavascriptがRailsから独立している API層のサポートが微妙 最初に書いておきますが、特に決定的な解決策もなく、辛いから今後解消されてほしいよね、な話です。 ViewのJavascriptがRailsから独立している Railsはとても堅牢。 モデル、コントローラ、ルーティングと、変にいじらない限りはほとんどテストが要らない。 必要なのは、モデルに新たにpublicメソッドを付けたときくらいだろう。 実際、バックエンドはそうそうバグが出ない。
本記事は、A server is already running の対処です。これについては記事もたくさん存在していますし何も新しいことはありません。 ただ、Rails × Docker で開発する人より多くの人に見てもらえることを目的として書きました。 Rails の A server is already running と聞いて「ああ、あれのことか」と思った方は本記事は読み飛ばしてください。 docker-compose.yml db: image: postgres web: build: . # コンテナ立ち上げ時に開発用サーバを起動 command: bundle exec rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" links: - db $ docker-compose up -
追記 コードの全体像がわかりにくいって意見をもらったのでgithubにコードおきました。 (りーどみーがわかりにくいとかあればPRいただけると幸せです) https://github.com/togana/sample-rails-docker versionとか少し変わってたりDockerfileの中で実行してるコマンドが少し変わったりしてますが、大きく変わっているところはないので参考にしてください! 追記2 docker-machineの共有ファイルを利用している場合、Rails5からファイル変更しても検知できなくなっていました。 ファイルの変更を検知しているのは config.file_watcher という設定です。 ここがバージョンアップに伴い変更されていました。 ActiveSupport::FileUpdateChecker から ActiveSupport::Evented
概要 Web アプリケーションを開発しているときに、開発環境に MySQL や Redis を用意しバージョンを揃え、いや Redis はキャッシュにしか使ってないし必須じゃないから開発環境に無い場合のコードも書いて…… というようなことを2017年にもなってやりたくないので、Docker を使って良い感じにやっていきます。 Docker や Docker Compose に関する基本的な説明は割愛するので、公式ドキュメントをあたってください。 目標 コマンド一発で必要なサービス群が全て立ち上がるようにする Docker Compose を使い、1サービスごとに1コンテナを立ち上げる vendor や node_modules は、ホスト側のものと完全に分離する。OS が違う場合、Native extension があると問題の原因になるので避けたい。 ホスト側ではエディタと git さえ
(訳注: 2016/3/2、頂いたフィードバックをもとに記事を修正いたしました。) Ruby on Railsは最近、急激に注目を集めていますが、その原因はほとんど、この言語が斬新なテクノロジーとしてもてはやされたことと、タイミングにあります。技術的な優位性は時間の経過とともに失われますから、タイミングがよかっただけでは、一過性のブームに終わり、このムーブメントの隆盛は長続きしません。従って、「Railsがいかにして、適切な技術としての位置を維持し続けるるだけでなく、影響力とコミュニティを拡大し続けてきたのか」をより多くの人に説明していく必要があります。そして、その維持・拡大を可能にした/していく要因は、物議を醸すことさえあるRailsの基本原則にあると考えています。 この基本原則はここ10年ほどの間に進化を続けてきましたが、最も強固な柱となっているルールはやはり、公開当初から制定されてい
2014-08-23 Railsで簡単な暗号化と復号化の処理 Rails 利用者から証明書のパスフレーズなど入力があった際に、データベースに平文で保存するのはよくないと思い、暗号化と復号化の処理を実施しました。 暗号化 salt = SecureRandom::hex(50) encryptor = ActiveSupport::MessageEncryptor.new(salt) encrypt_message = encryptor.encrypt_and_sign('Hello World') 復号化 encryptor.decrypt_and_verify(encrypt_message) 参考:Ruby - Railsで簡単可逆暗号(ActiveSupport::MessageEncryptor) - Qiita kaorumori 2014-08-23 22:30 Railsで
モデルについて 説明 モデルとはアプリケーションが扱うデータや処理を表現する仕組みのこと モデル名とテーブル名の規約 英大文字から始まる 英数字のみ 単語の区切りでは、先頭文字を大文字 単数形の名詞 Entry UserComment ファイルはapp/modelsディレクトリに格納 ファイル名は、モデル名の単語区切りを「_」にし、すべて小文字にしたもの app/models/entry.rb app/models/user_comment.rb 命名規則 種類 説明 例
ActiveRecord 1. create_with create するときの条件を追加できます。 例えば、"ユーザーから「男」を探して、いなかったら「男」、「山田太郎」を追加したい" とき User.create_with(name: 'Yamada Taro').find_or_create_by(sex: 'man') こんな感じで find_or_create を使う際に便利です。 2. update(attributes) 内部的には、attribute をオブジェクトにセットして、save メソッドを呼んでいるだけ。 なので、これを利用すると update_or_create_by が作れます。
インストール rails server で起動するデフォルトのサーバは WEBrick で実用レベルではありません。代わりに Unicorn を利用します。 # gem パッケージに含まれていなければ追加します % vi Gemfile ... gem 'unicorn' % bundle update 設定 config/unicorn.rb として設定ファイルを作成します。 worker_processes 2 stderr_path File.expand_path('../../log/unicorn/stderr.log', __FILE__) stdout_path File.expand_path('../../log/unicorn/stdout.log', __FILE__) pid File.expand_path('../../log/unicorn/unicorn.
こんにちは、tahara です。 いこーよ では Passenger を使っていました。 最近チケット毎に Docker でステージングを作り、リリースする流れになった中、 デプロイ時の再起動でリクエストがつまってしまうのが問題になってきました。 そのため Unicorn に変えました。 実は以前 Uricorn を使っていました(さらにその前は Passenger です)。 そのころはさくらの専用サーバでした。 さくらから AWS にのりかえた際に Passenger にしました。 AWS のオートスケールでのデプロイ対応のためです。 いこーよは NFS サーバを動かしており、全 Rails サーバは NFS マウントして最新のコードを共有しています。 そうすれば、いつオートスケールしても問題なく最新のコードを参照でき、デプロイ毎に AMI を使り直す必要もありません。 オートスケールで
はじめに 前回は、Herokuのコマンドの拡張pluginについて解説しました。ちょっとマニアックだったかと思いますが、Herokuのオープンであるというビジョンが見える非常に面白い仕組みだと思います。今回は、マンガ共有サービスの機能を追加したいと思います。Webサービスでは必須の機能のファイルアップロードの仕組みをHerokuを利用する場合どのように実現するかを紹介します。 Herokuでのファイルの扱い Heroku上では、ファイルをサーバ上に保存するということができません。これは、以下の理由からそのようになっていると思います。 Webサーバのインスタンスがどのサーバで動くかが特定できない 複数インスタンスが動いた場合に、同じファイルシステムを共有できない Herokuでは、マルチインスタンスのプラットホームであるためこのような課題が出てきます。この問題をおそらく解決することはできるか
スタートアップ界隈でのRuby on Rails利用率は割と高く感じる。 みんなが使っているから使う?それだけではないはず。なぜ使うのだろう。 railsの特徴を考える。 規約縛りの哲学 周辺gemのエコシステム webの進化への追従の速さ 規約縛りの哲学 Convention over Configurationてやつ。規約を決めて、それに沿えば、フレームワークに乗って素早く開発できるようになる。規約で縛ることでRailsに流れる哲学に従うことを強制化している。 外れると痛い目を見る。Railsに乗るということは電車に乗って簡単に遠くまで行けるということ。Railsから降りるということは電車からも降りるようなものだ。中途半端な理解で突き進むと線路からすぐに降りて歩くことになる。 スタートアップでRailsが採用される一番の理由は、 簡単に遠くまで行ける だと思う。ただ、そんなにうまい話は
Finally, just a small release! Changes since 6.1.1: Avoid detecting Phlex components as dynamic render paths (Máximo Mussini) Avoid detecting ViewComponentContrib::Base as dynamic render paths (vividmuimui) Avoid copying Sexps that are too large (#1818, #1546) Add EOL date for Ruby 3.3.0 Remove deprecated use of Kernel#open("|...") Remove safe_yaml gem dependency Update Highline to 3.0 (#1812) Com
本日(日本時間2013年10月17日)、Ruby on Rails 3.2.15がリリースされました。3.2系最新リリースになります。 バグ修正の他、1件のセキュリティFIXが含まれています。3.2系ユーザは可能な限り早めにアップデートしましょう。 なお、予定ではこれが3.2系最終リリースで、これ以降はセキュリティFIXのみが提供されることになっています。 バグ修正はされない予定なので、アクティブなRailsプロジェクトは、早めにRails 4への移行を検討したほうが良さそうです。 セキュリティFIX DoS攻撃につながる可能性のある脆弱性が修正されています。 ActionMailerのLogSubscriberに以下のようなコードが存在していまいしたが、 info("\nSent mail to #{recipients} (%1.fms)" % event.duration) これはr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く