====== 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 トップページ]]