まずは、サンプルプロジェクトを作成します。
$ mkdir sample_pj $ cd ~/sample_pj
次にDockerfileを作成していきます。
$ touch Dockerfile
FROM ruby:2.7.0 RUN apt update -y && apt install curl RUN curl -sL https://deb.nodesource.com/setup_12.x | bash - RUN apt-get install -y nodejs RUN npm install -g yarn RUN mkdir /myapp WORKDIR /myapp COPY Gemfile /myapp/Gemfile COPY Gemfile.lock /myapp/Gemfile.lock RUN bundle install RUN yarn install COPY . /myapp
注意!!
FROM ruby:2.7.0
だとエラーになる可能性があるので、ダメな場合は2.6.5
で試してみてください。
次にGemfileとGemfile.lockを作成します。
# frozen_string_literal: true source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } gem "rails", '6.0.0'
次にDockerコンテナを定義するdocker-compose.ymlを作成します。
version: '3' services: db: image: mysql:5.7 volumes: - db-volume:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: password web: build: . command: rails s -p 3000 -b '0.0.0.0' volumes: - .:/myapp ports: - "3000:3000" depends_on: - db volumes: db-volume:
これで事前準備は終了です。これからDockerで環境構築していきます。
$ docker-compose run web rails new . -f -d=mysql
このコマンドでRailsプロジェクトを作成します。
しばらく待ちます。
終了したら、config/database.ymlを編集していきます。
default: &default adapter: mysql2 encoding: utf8mb4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: 'password' <- 変更 host: db <- 変更
ビルドします。
$ docker-compose build
そしたら、デタッチドモードで起動していきます。
$ docker-compose up -d
Railsで使用するDBを作成します。
$ docker-compose run web rails db:create
http://localhost:3000/にアクセスしてしましょう。
無事に環境構築できました。
下記のコマンドを打つことでコンテナを停止することができます。
$ docker-compose stop
GitHubにあげてます。確認したい方はぜひご覧ください。 github.com
Dockerの学習に以下のUdemyの講座がとても役にたちました。わかりやすいのでおすすめです。