サルでもわかるWEBプログラミング

フリーソフトのみでホームページ作成

ユーザ用ツール

サイト用ツール


00.rubyonrails:07.windows10にdockerでrails5環境構築


07.Windows10にDockerでRails5環境構築

Ruby on Rails トップページ

Ruby on Railsチュートリアル 5.1をやりたい。
https://railstutorial.jp/chapters/beginning?version=5.1

2022年1月時点

以下に記載しました

https://i-doctor.sakura.ne.jp/font/?p=48294
Docker Desktop for Windowsを試してみる(8)Railsチュートリアル第4版(Rails5.1)の環境構築【2022年1月時点】
2022年1月28日

開発環境

『Wndows Docker Desktop』+『WSL2のUbuntu』+VSCodeのセットアップについては「Docker for Windowsを試してみる(1)WSL2とWindows Desktopのインストール」をご参照ください。

Windows10 + WSL2 Ubuntu + Docker desktopにRails5.1.6 + Postgre環境を構築

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 Ruby 2.5 on Rails 5.1.6
FROM ruby:2.5
# Rails6ではnodejsとyarnはwebpackをインストールする際に必要
# yarnパッケージ管理ツールをインストール
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
RUN apt-get update -qq && apt-get install -y nodejs build-essential libpq-dev postgresql-client yarn
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
RUN yarn install --check-files
RUN bundle exec rails webpacker: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"]
view raw Dockerfile hosted with ❤ by GitHub
#!/bin/bash
set -e
# Rails に対応したファイル server.pid が存在しているかもしれないので削除する。
rm -f /myapp/tmp/pids/server.pid
# コンテナーのプロセスを実行する。(Dockerfile 内の CMD に設定されているもの。)
exec "$@"
view raw entrypoint.sh hosted with ❤ by GitHub
source 'https://rubygems.org'
gem 'rails', '5.1.6'
view raw Gemfile hosted with ❤ by GitHub

webコンテナ(Dockerfileから作成したイメージから作成)とdbコンテナをdocker-composeでupします。

  1. WindowsのスタートボタンからDocker Desktopを起動
  2. WSL2を起動し、VisualStudioCodeを起動
mkdir rais5
cd rails5
code .
  1. Dockerfileを元にしてwebコンテナ用のイメージ(設計図)を作成
docker-compose run --no-deps web rails new . --force --database=postgresql
ls -l
docker-compose build
sudo chown -R $USER:$USER .
  1. データベースとしてpostgresqlを用いるためにconfig/database.ymlを書き換えて、Ctrl+S で保存
  2. docker-compose upでwebコンテナ(上で作ったイメージを元に作成)と、dbコンテナ(DockerHubにあるイメージimage: postgresを元に作成)を作成し、連携
  3. rake:db createでデータベースを作成
  4. WindowsのWebブラウザで、localhost:3000にアクセス
docker-compose up -d
docker-compose run web rake db:create

http://localhost:3000

Dockerを止めるとき(アプリを止めるとき)

docker-compose down

Rails5.1 チュートリアル用

Gemfileに追加

gem 'jquery-rails'

Gemfileを更新したら、以下を実行。Dockerイメージをビルドしなおす必要あり。時間がかかる。

docker-compose run web bundle install
docker-compose down
docker-compose up --build -d

docker-compose up –build しない(docker-compose up -dだけ実行)と、Dockerのwebコンテナが起動してもすぐに自動的にストップしてしまい、Railsを動かすことができない。
Gemfileにjquery-railsを入れると、Railsが動かない。わけではなかった。)

https://qiita.com/Masa9/items/cc36f9223e6ce1f0a8a9
@Masa9
更新日 2021年03月02日
dockerでgemを追加したときにbundle installではなくbuildする

https://teratail.com/questions/302733
【Rails】Gemfileを追加してDockerを再起動したらlocalhostに接続できなくなった
_chii
投稿2020/11/06 22:43

第3章

見出し


00.rubyonrails/07.windows10にdockerでrails5環境構築.txt · 最終更新: 2022/01/28 by adash333

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki