====== 02.windows10にdockerでrails7環境構築 ======
[[00.rubyonrails:index.html|Ruby on Rails トップページ]]
===== リンク =====
https://i-doctor.sakura.ne.jp/font/?p=47014
Docker Desktop for Windowsを試してみる(3)Windows10でWindowsとwsl2間でのファイルのコピー
2022年1月28日
https://zenn.dev/kino_puehddby/articles/21a3cf0aacee7c
【Rails7】DockerでRuby on Railsアプリを構築してHerokuにデプロイするまで
https://qiita.com/FUSe_wadthee/items/50d772cfaf9dbb767578
@FUSe_wadthee
更新日 2022年03月15日
ええ!?Getting Started with Rails(7)で詰まるなんてあっていいんですか!
https://zenn.dev/mingos/articles/c4b4fce7e5368f
DockerでRails6+PostgreSQLの開発環境を構築する
2022/04/08に公開
https://mseeeen.msen.jp/rails-docker/
Docker 上で Ruby on Rails 7 の開発環境を構築してみた
2022.06.15
https://qiita.com/normalsalt/items/8bf6c5010c9e9f127582
@normalsalt
更新日 2022年03月04日
Ruby on Rails 7 with Bootstrap on Docker Compose 開発環境を簡単に構築する方法
https://zenn.dev/dragonarrow/articles/48e4257c5fcbe7
Rails7 のステージング環境(Docker)を楽々に作成してSSL化する
2022/09/04
===== 今回構築した環境で再開するときはdocker-compose up -d =====
docker-compose downでDockerコンテナを止めて、パソコンを終了した後、パソコンを再起動したら、
-Windows Docker Desktopを起動
-WSL2のUbuntuを起動
-cd rails7 && code .
-VisualStudioCodeが開くので、Ctrl+@でターミナル画面を出す
-docker-compose up -d
-WEBブラウザで、localhost:3000/ を開く
とします。なお、rails g scaffold などをしたい場合は、
docker-compose exec web bash
で、webコンテナに入ってから実行します。webコンテナのbashから出るときは、
exit
で出ます。
新しいファイルを作成したような場合は、WSL2で以下のコマンドを入力する必要があることがあります。
sudo chown -R $USER:$USER .
==== Gemfileを更新したとき =====
docker-compose run web bundle install
docker-compose down
docker-compose up --build -d
イメージをビルドしなおすので時間はかかる。
https://teratail.com/questions/373578
DockerコンテナでRailsでアプリを作りたい。docker-composeで出るエラー
PolymetisOutis7
投稿2021/12/13 15:45
https://qiita.com/gyu_outputs/items/1cc1903db802daf0fdbc
@gyu_outputs
投稿日 2020年03月31日
更新日 2020年06月07日
dockerでGemfile(gem追加)更新したら後、データベースが消えた、gemが反映しない
==== Dockerイメージを持ち運びたいとき ====
https://blog.amedama.jp/entry/2017/11/01/204637
2017-11-01
Docker イメージをファイルでやり取りする
基本的に Docker イメージ
===== 突然Dockerがアンインストールされたり、docker-composeが使えなくなってしまったら =====
https://qiita.com/lukapla/items/c4f1029cc18e7ee99951
@lukapla
投稿日 2020年05月31日
Ubuntu 20.04でapt install docker-composeでインストールしたらバージョンが古くてエラーが発生
https://qiita.com/suaaa7/items/744f58319c04d9b6bfbe#7-docker-compose%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB
@suaaa7
投稿日 2019年08月25日
WSL2でdocker-composeを使えるようにするまで
==== 見出し ====
https://qiita.com/kodai_0122/items/67c6d390f18698950440
@kodai_0122
更新日 2019年11月18日
Rails6の本番環境でBlocked hostエラーが発生したときの対処法
config/environments/development.rb
production.rb ?
===== 見出し =====
Windows10で、Windows Docker Desktopを用いてRails7+PostgreSQLの開発環境を構築する方法を以下に記載しましたので、もしよろしければリンク先をご覧ください。
https://i-doctor.sakura.ne.jp/font/?p=46757
Docker Desktop for Windowsを試してみる(1)WSL2とWindows Desktopのインストール
2021年9月21日
https://i-doctor.sakura.ne.jp/font/?p=46947
Docker Desktop for Windowsを試してみる(2)Swiftコンテナを作成してSwiftを動かしてみる
2021年9月18日
https://i-doctor.sakura.ne.jp/font/?p=47014
Docker Desktop for Windowsを試してみる(3)Windows10でWindowsとwsl2間でのファイルのコピー
2021年9月18日
https://i-doctor.sakura.ne.jp/font/?p=47130
Docker Desktop for Windowsを試してみる(4)Windows10+WSL2+DockerDesktopでJupyterLab環境構築してみる
2021年9月18日
https://i-doctor.sakura.ne.jp/font/?p=48081
Docker Desktop for Windowsを試してみる(5)Windows10+WSL2+DockerDesktopでWordPressを環境構築してみる
2022年1月16日2022年1月17日
https://i-doctor.sakura.ne.jp/font/?p=48078
Docker Desktop for Windowsを試してみる(6)Windows10+WSL2+DockerDesktopでRuby on Rails7+PostgreSQLを環境構築してみる【2022年1月時点】
2022年1月17日
===== 開発環境 =====
Windows 10 Pro 21H1
Hyper-Vを有効化
Windows Docker Desktop 4.0.0
VisualStudioCode (wsl用の拡張機能インストール済み)
WSL2 Ubuntu 20.04 LTS
VisualStudioCode (+拡張機能 )
『Wndows Docker Desktop』+『WSL2のUbuntu』+VSCodeのセットアップについては[[https://i-doctor.sakura.ne.jp/font/?p=46757|「Docker for Windowsを試してみる(1)WSL2とWindows Desktopのインストール」]]をご参照ください。
===== Windows10 + WSL2 Ubuntu + Docker desktopにRail7 + Postgre環境を構築 =====
webコンテナ(Dockerfileから作成したイメージから作成)とdbコンテナをdocker-composeでupします。
-WindowsのスタートボタンからDocker Desktopを起動
-WSL2を起動し、VisualStudioCodeを起動
mkdir rais7
cd rails7
code .
-[[https://gist.github.com/adash333/7e0e509d22edae918c6c1d61f624d146|5つのファイル(Dockerfile, Gemfile, Gemfile.lock, entrypoint.sh, docker-compose.yml)]]を作成
-Dockerfileを元にしてwebコンテナ用のイメージ(設計図)を作成
docker-compose run --no-deps web rails new . --force --database=postgresql
ls -l
docker-compose build
sudo chown -R $USER:$USER .
-データベースとしてpostgresqlを用いるために[[https://gist.github.com/adash333/7e0e509d22edae918c6c1d61f624d146#file-config_database-yml|config/database.yml]]を書き換えて、Ctrl+S で保存
-docker-compose upでwebコンテナ(上で作ったイメージを元に作成)と、dbコンテナ(DockerHubにあるイメージimage: postgresを元に作成)を作成し、連携
-rake:db createでデータベースを作成
-WindowsのWebブラウザで、localhost:3000にアクセス
docker-compose up -d
docker-compose run web rake db:create
http://localhost:3000
Dockerを止めるとき(アプリを止めるとき)
docker-compose down
===== 一度作成したコンテナを再度起動するとき =====
-WindowsのスタートボタンからDocker Desktopを起動
-WSL2を起動し、VisualStudioCodeを起動 cd rails7 && code .
-"Ctrl+@"でターミナル画面を起動して、docker-compose up -d
-なお、webコンテナに入りたいとき(rails scaffoldなど使いたいとき)は、以下のコマンド(WSL2に戻るときは、exit)
docker-compose exec web bash
===== Windows10 docker rails =====
https://guides.rubyonrails.org/getting_started.html
Getting Started with Rails
→Rails6のインストールには以下が必要
-Ruby
-SQLite3 (開発環境でsqliteを使用する場合)
-Node.js (Rails7ではとりあえず不要)
-Yarn (Rails7ではとりあえず不要)
Ruby 3.1 on Rails 7
-Dockerfile
-Gemfile
-Gemfile.lock
-entrypoint.sh
-docker-compose.yml
流れ
-目標は、webコンテナ(Railsの入ったコンテナ)と、dbコンテナ(PostgreSQLの入ったコンテナ)を作成し、連携すること
-5つのファイルを作成
-Dockerfileを元にしてwebコンテナ用のイメージ(設計図)を作成
-ただし、webコンテナを作成するときに、毎回、「Rails に対応したファイル server.pid が存在しているかもしれないので削除する。」ために、entrypoint.shを実行するようにしておく
-Gemfile, Dockerfileを修正したら、毎回、docker-compose build
-データベースとしてpostgresqlを用いるためにconfig/database.ymlを書き換える
-docker-compose upでwebコンテナ(上で作ったイメージを元に作成)と、dbコンテナ(DockerHubにあるイメージimage: postgresを元に作成)を作成し、連携 、docker-compose up
-railsのデータベースを作成するため(?)にdocker-compose run web rake db:create
-ブラウザでlocalhost:3000を開く
-アプリを止めるときはdocker-compose down
-アプリを再開するときはdocker-compose up
-Gemfile や Compose ファイルを編集したときは、以下のように再ビルドが必要。
docker-compose run web bundle install
docker-compose up --build
https://matsuand.github.io/docs.docker.jp.onthefly/samples/rails/
Dockerfile
# https://matsuand.github.io/docs.docker.jp.onthefly/samples/rails/
# Ruby 3.1 on Rails 7
FROM ruby:3.1.0
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
# コンテナー起動時に毎回実行されるスクリプトを追加
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# イメージ実行時に起動させる主プロセスを設定
CMD ["rails", "server", "-b", "0.0.0.0"]
Gemfile
source 'https://rubygems.org'
gem 'rails', '~>7'
Gemfile.lock
→何も記載しない
entrypoint.sh
#!/bin/bash
set -e
# Rails に対応したファイル server.pid が存在しているかもしれないので削除する。
rm -f /myapp/tmp/pids/server.pid
# コンテナーのプロセスを実行する。(Dockerfile 内の CMD に設定されているもの。)
exec "$@"
docker-compose.yml
version: "3.9"
services:
db:
image: postgres
volumes:
- ./tmp/db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: password
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
volumes:
- .:/myapp
ports:
- "3000:3000"
depends_on:
- db
以下を実行
コメントは#で記載
docker-compose run --no-deps web rails new . --force --database=postgresql
ls -l
# Gemfile, Dockerfileを修正したら、毎回、以下が必要
docker-compose build
config/database.yml を以下のように書き換える
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password: password
pool: 5
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
以下を実行
docker-compose up
docker-compose run web rake db:create
http://localhost:3000 にアクセスすると、うまくいくと、画面が表示される。
Dockerを止めるとき(アプリを止めるとき)
docker-compose down
アプリを再び起動するとき
docker-compose up
Gemfile や Composeファイルを編集したときは、以下のように再ビルドが必要。
docker-compose run web bundle install
docker-compose up --build
===== Dockerで構築したRailsではrailsコマンドを用いる場合はdocker-compose execしてコンテナに入ってから行う =====
https://alterbo.jp/blog/ryu3-2106/
Docker+MySQL+Railsの開発環境を作る
2021.06.21
docker-compose exec web bash
docker-compose execは
docker-compose exec コンテナ名 実行コマンド
で実行。 コンテナ名(web)はdocker-compose.ymlの「services:」の後に定義したもの。
https://smot93516.hatenablog.jp/entry/2019/05/22/161921
2019-05-22
【Rails】docker-composeでrails generateが使えず、Could not find rake ~~~~になる
https://zenn.dev/endo/articles/42309bdddc4fe0fabfd6
Rails】主要コマンドまとめ
2021.01.17
===== 開発環境でのデータベースをsqlite3を用いる場合 =====
Dockerfile
# Ruby 3.1 on Rails 7
FROM ruby:3.1.0
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client sqlite3
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
# コンテナー起動時に毎回実行されるスクリプトを追加
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# イメージ実行時に起動させる主プロセスを設定
CMD ["rails", "server", "-b", "0.0.0.0"]
https://self-development.info/ubuntu-20-04-lts%E3%81%ABsqlite%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/
Ubuntu 20.04 LTSにSQLiteをインストールする
Gemfile
source 'https://rubygems.org'
gem 'rails', '~>7'
database.yml
default: &default
adapter: postgresql
encoding: unicode
host: db
username: postgres
password: password
pool: 5
development:
<<: *default
database: myapp_development
test:
<<: *default
database: myapp_test
production:
adapter: postgresql
encoding: unicode
host: db
username: postgres
password: password
pool: 5
url: <%= ENV['DATABASE_URL'] %>
docker-compose run --no-deps web rails new .
===== 見出し =====
https://qiita.com/na-777/items/fcccb48b4f3b549abe61
@na-777(株式会社イーリバースドットコム)
更新日 2021年09月22日
Windows10のWSL2(Ubuntu)でDockerを使ったRails環境構築
https://zenn.dev/az/articles/6e2a421f7a32446d827f
超丁寧なrails6 + MySQL on Dockerの環境構築
2020.11.21
https://zenn.dev/nakazawaken1/articles/0f5515cde2ddf3
Ruby 3.1 と Rails 7 のプロジェクトを Docker内で作成してみる
2022.01.14
https://qiita.com/shizen-shin/items/659880ca1c471b005eb0
@shizen-shin
更新日 2022年01月03日
【Rails6】Docker上にRailsアプリの開発環境を構築しCRUD操作する手順
https://docs.docker.jp/compose/rails.html
クィックスタート: Compose と Rails
https://matsuand.github.io/docs.docker.jp.onthefly/samples/rails/
クィックスタート: Compose と Rails
https://qiita.com/kodai_0122/items/795438d738386c2c1966
@kodai_0122
更新日 2020年02月27日
DockerでRuby on Railsの環境構築を行うためのステップ【Rails 6対応】
https://leez.info/archives/5023
Windows10 + Docker環境でRuby on Railsの環境を作る方法
2021年5月25日
https://zenn.dev/tmasuyama1114/articles/rails-docker-6x-how-to
Ruby on Railsの開発環境をDockerで構築する方法(Rails 6.x)
2021.03.30に公開
https://alterbo.jp/blog/ryu3-2106/
Docker+MySQL+Railsの開発環境を作る
2021.06.21
https://prograshi.com/framework/rails/rails6-on-docker/
【Rails6】Docker上にRailsアプリの開発環境を構築しCRUD操作する手順
2022.1.3
https://michinoku-se.org/docker-rails/
DockerでRailsローカル開発環境を爆速構築
更新日:2021-03-17
===== Windows10 docker wordpress =====
https://eeedotweb.com/blog/docker-local-wordpress/
【初心者向け】DockerでWordPressローカル開発環境を作成する方法(Mac用)
WordPress
2021.05.17
-MySQL 5.7
-
https://docs.docker.com/samples/wordpress/
Quickstart: Compose and WordPress
===== rails7 =====
https://qiita.com/jnchito/items/5c41a7031404c313da1f#devise%E3%81%8Cturbo%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84
@jnchito
更新日 2022年04月20日
Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ
https://zenn.dev/kenzan100/articles/0f9b100655a4bf
Rails7がもつフロントエンドへの「答え」
2021.09.17
https://www.publickey1.jp/blog/22/ruby_31rails_701ruby_31_on_rails_7.html
Ruby 3.1に対応したRails 7.0.1がリリース。「Ruby 3.1 on Rails 7」が実現
2022年1月11日
https://qiita.com/jnchito/items/5c41a7031404c313da1f
@jnchito
更新日 2022年01月28日
Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ
===== Docker =====
https://zenn.dev/o2z/articles/zenn-20210622_wsl_directory
エクスプローラでWSL2(ubuntu)のディレクトリを開く方法
2021年8月7日
https://snowsystem.net/container/docker/docker-wsl-dev-env-react/
Reactの開発環境(WSL2+docker)構築から本番環境(DockerHub+kubernetes)へのデプロイ手順まとめ
2021年1月3日
https://qiita.com/zembutsu/items/24558f9d0d254e33088f
@zembutsu(さくらインターネット株式会社)
更新日 2021年11月21日
Organization
Dockerイメージの理解を目指すチュートリアル
===== 見出し =====
[[00.rubyonrails:index.html|Ruby on Rails トップページ]]