導入
今回は最新のrails8を最も簡単にセットアップして動くようにするコードを用意したので軽い検証や初めてrailsを使う方はぜひ使ってみてください!
必要なもの
これだけです!
初学者向けに今回はvscodeで説明していますがエディターはなんでもいいです
手順
gitが普通に使える方は以下のリポジトリからクローンしてREADME.md通りに構築してください
gitがよくわからない方は以下の手順で進めてください
2. `Dockerfile.local`, `Makefile`, `setup.sh` の3つのファイルを作成します
3. それぞれの中身は以下をコピペしてください
Dockerfile.local
FROM ruby:3.3.6-slim-bullseye
RUN apt-get update -qq && apt-get install -y \
build-essential \
sqlite3 \
libsqlite3-dev \
git
WORKDIR /usr/src/app
ENV BUNDLE_PATH=/usr/src/app/vendor/bundle
RUN echo "source 'https://rubygems.org'\ngem 'rails', '~> 8.0.0'\ngem 'sqlite3'" > Gemfile && \
touch Gemfile.lock
COPY setup.sh /usr/src/app/setup.sh
RUN chmod +x /usr/src/app/setup.sh
RUN bundle install
EXPOSE 3000
ENTRYPOINT ["sh", "/usr/src/app/setup.sh"]
setup.sh
#!/bin/bash
if [ ! -f /usr/src/app/Gemfile ]; then
rails new . --database=sqlite3 --skip-bundle --force --skip-git
fi
bundle install
bundle exec rails db:migrate
rm -f tmp/pids/server.pid
bundle exec rails server -b 0.0.0.0
Makefile
CONTAINER_NAME = rails-container
IMAGE_NAME = rails-sample-app
build:
docker build -t $(IMAGE_NAME) . -f Dockerfile.local
run:
docker run --rm -p 3000:3000 \
-v $(PWD):/usr/src/app \
-v $(PWD)/vendor/bundle:/usr/src/app/vendor/bundle \
--name $(CONTAINER_NAME) $(IMAGE_NAME)
c:
docker exec -it $(CONTAINER_NAME) bundle exec rails c
bash:
docker exec -it $(CONTAINER_NAME) bash
stop:
@docker ps -q -f name=$(CONTAINER_NAME) | xargs -r docker stop
ターミナルに以下のコマンドを打ちます
make build
make run
ターミナルが写真のようになった後、http://localhost:3000 にアクセスしてrailsの画面が表示されれば成功です
コンテナを落としたい時はcontrol + c だけだとコンテナは止まらないので make stop
をするかdocker desktopで手動で止めてください
rails consoleを開きたい場合は
make c
コンテナに入りたい場合は
make bash
を使ってください