スポンサーリンク

Windows8.1でDockerでRails4+postgresqlで開発環境

なんとかWindowsでDocker使ってRails開発環境を整えたかった。理由はない!

Rails4開発環境としては、

(1)Cloud9

(2)Vagrant

(3)Docker

オンラインでは(1)が一番!オフラインでは(2)が一番だと思う。でも、(3)を試してみたい!

Dockerの本も1冊読んでみて、いろいろググッたが、Dockerを使っている人は、プロ?が多く、Quiitaの書き込みも、省略しまくりなのが多く、私にはきつい。

docker-compose で Rails の開発環境を作る
skyriserが2015/05/08に投稿(2015/05/09に編集)
http://qiita.com/skyriser/items/2cf98b747ed6577cc5ee

上記をそのままやってみても、無理。無理だということが分かるようになるまで数日かかった。

docker-composeでRails4の開発をする流れ
tukiyo3が2015/09/07に投稿(2015/09/07に編集)
http://qiita.com/tukiyo3/items/4d107d7a4db1b97b5ae8

これも、Macや、WindowsにRailsが入っていないと最初のところで無理。

——————–

dockerをつかってrailsの開発をしてみる
eielhが2015/01/27にKobitoから投稿(2015/01/28に編集)
http://qiita.com/eielh/items/754c1f785e66e3c4cee0

——————–

を参考にがんばってみたいと思う。

上記はMacなので、Winodowsでは、

[sourcecode language='ruby'  padlinenumbers='true']
docker run --rm -it -v /c/Users/(ユーザ名)/docker3:/usr/src/app -w /usr/src/app rails rails new hello -d postgresql
[/sourcecode]

とするのかな?「(ユーザ名)」のところは、ユーザ名が taro であれば、

[sourcecode language='ruby'  padlinenumbers='true']
docker run --rm -it -v /c/Users/taro/docker3:/usr/src/app -w /usr/src/app rails rails new hello -d postgresql
[/sourcecode]

となる。

image

自動的に、c/Users/(ユーザ名)/docker3/ フォルダの中に、hello フォルダが作成された。

image

image

●データベースサーバを起動http://qiita.com/eielh/items/754c1f785e66e3c4cee0#%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E8%B5%B7%E5%8B%95

に記載の通りに。

docker run -d --name hello-db postgres

●hello フォルダに、Dockerfileを作成

中身は、

http://qiita.com/eielh/items/754c1f785e66e3c4cee0#%E9%96%8B%E7%99%BA%E7%94%A8%E3%82%A4%E3%83%A1%E3%83%BC%E3%82%B8%E3%81%AE%E4%BD%9C%E6%88%90

をコピー

(引用ここから)

——————————

[sourcecode language='ruby' ]
FROM rails:onbuild

ENV DB_USER postgres
ENV DB_PASSWORD password
ENV DB_NAME hello
ENV DB_ADAPTER postgres
ENV DATABASE_URL ${DB_ADAPTER}://${DB_USER}:${DB_PASSWORD}@db/${DB_NAME}
[/sourcecode]

——————————

(引用ここまで)

image

Dockerfileを上記のように作成してから、helloフォルダに移動して、

docker build -t hello .

 

image

image

●rails serverの起動

http://qiita.com/eielh/items/754c1f785e66e3c4cee0#rails-server%E3%81%AE%E8%B5%B7%E5%8B%95

の通りにやってみる。

docker run –rm -it -p 3000:3000 -v /c/Users/(ユーザ名)/docker3:/usr/src/app –link hello-db:db hello bash

「(ユーザ名)」のところは、ユーザ名が taro であれば、

[sourcecode language='ruby' ]
docker run --rm -it -p 3000:3000 -v /c/Users/taro/docker3:/usr/src/app --link hello-db:db hello bash

bin/rake db:create db:migrate
bin/rails s -b 0.0.0.0
[/sourcecode]

image

image

ホストOSから、

http://192.168.99.100:3000/

にアクセスすると、Rails4のいつもの画面が出てきた。

image

やっとお望みのことができた!

ファイルは、ホストOS(Windows)の、ファイルを操作すればよい。試しにやってみる。

config/routes.rb

image

app/controllers/applicaation_controller.rb

image

ホストOSで、ブラウザを更新すると、

image

お、これは便利かも!

(1)Gemfileの変更や、

(2)データベースの保存

はどのようにしたらよいのかな?まだもう少し工夫しなければいけなさそう。

————————

<一度パソコンをシャットダウンして、再度、途中から始めたいとき>

(1)Docker Quickstart Terminal を起動

(2)

[sourcecode language='ruby'  padlinenumbers='true']
docker start hello-db

docker run --rm -it -p 3000:3000 -v /c/Users/(ユーザ名)/docker3:/usr/src/app --link hello-db:db hello bash

cd hello
bin/rake db:create db:migrate
bin/rails s -b 0.0.0.0
[/sourcecode]

(3)ホストOSのブラウザで、

http://192.168.99.100:3000/

にアクセス。

最初のDocker Quickstart Terminal起動時間を考えると、やはり、Vagrantよりは遅いような気がする、、、Dockerのメリットとしては、

●(一度、環境構築してしまえば、(これが、私にはとても、とても難しかった))Vagrantよりも安定している気がする。

●Vagrantよりも、ファイル共有がしやすいかも?

<終了するとき>

docker-machine stop default

(参考)

DockerToolboxで作るWindows用開発環境の構築

stbmp23が2016/02/02に投稿(2016/02/02に編集)

http://qiita.com/stbmp23/items/ea23f32d04882c2c46d9

Dockerにホストのフォルダをマウントしたい!

dojinekoが2015/10/11に投稿(2015/10/11に編集)

http://qiita.com/dojineko/items/f623894ef2436bef890e

●Docker Quickstart Terminalは、docker-machineを用いているとのこと

docker-machineコマンド

maemoriが2015/09/21に投稿(2015/09/21に編集)

http://qiita.com/maemori/items/e7318b088b9e4bf22310

スポンサーリンク