📝
楽にdocker-composeでRailsの環境構築する方法のメモ
久しぶりにRailsの環境構築したのでメモも兼ねて
1. プロジェクト用のディレクトリを作成、移動
mkdir ~/hoge && cd ~/hoge
2. Rubyコンテナを起動するため、docker-compose.yml、Dockerfileを用意
docker-compose.yml
version: "3.9"
volumes:
db-data:
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- "3000:3000"
command:
tail -f /dev/null
volumes:
- .:/app
depends_on:
- db
db:
image: postgres:14.1
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: db_name
POSTGRES_USER: user_name
POSTGRES_PASSWORD: password
POSTGRES_HOST_AUTH_METHOD: trust
Dockerfile
FROM node:17.2.0 as node
FROM ruby:3.0.3
COPY /usr/local/bin/node /usr/local/bin/node
COPY /opt/yarn-* /opt/yarn
RUN ln -fs /opt/yarn/bin/yarn /usr/local/bin/yarn && \
apt-get update && \
apt-get install -y libpq-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY . .
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
3. コンテナ起動、接続
docker-compose up -d
docker-compose exec app bash
4. Railsのインストール、
gem install rails -v 6.1.4
rails new .
5. Railsの依存関係関連の記述の追加
Dockerfile
FROM node:17.2.0 as node
FROM ruby:3.0.3
COPY --from=node /usr/local/bin/node /usr/local/bin/node
COPY --from=node /opt/yarn-* /opt/yarn
RUN ln -fs /opt/yarn/bin/yarn /usr/local/bin/yarn && \
apt-get update && \
apt-get install -y libpq-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
WORKDIR /app
+ COPY Gemfile Gemfile.lock ./
+ RUN bundle -j4
+ COPY package.json yarn.lock ./
+ RUN yarn
COPY . .
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
いいところ
- 楽
悪いところ
- アプリ名がAppになってしまう
Discussion