Docker 환경에서 Rails 응용 프로그램 만들기(MySQL)

8371 단어 MySQLDockerRails

이번 목적


Docker 환경에서 Rails 응용 프로그램 만들기
DB는 MySQL입니다.

환경


Ruby 2.5.1
Rails 5.2.0
MySQL

사전 준비


Docker를 설치해야 합니다.하면, 만약, 만약...
참고로 설치를 완료하십시오.
Docker(Mac) 설치 시도

단계


아래의 참고 페이지를 바탕으로 진행하다.

참조 페이지 확인


Docker 초보자는 Docker에서 Rails+MySQL 환경 구축을 시도했습니다.
http://blog.howtelevision.co.jp/entry/2018/07/17/190652

항목 만들기


일단 프로젝트를 만들자.
이 예는 데스크톱에서 생성됩니다.
다른 것을 하고 싶으면 적당히 다시 읽었으면 좋겠어요.
//カレントディレクトリへ移動
cd

//desktopへ移動
cd desktop

//プロジェクトフォルダの作成(作成したいプロジェクト名)
mkdir rails-sample

//作成したプロジェクトフォルダの移動
cd rails-sample

구성 파일 만들기


설정 파일을 만듭니다.
편집기에서 항목 폴더를 열고 계속합니다.

우선 Dockerfile이라는 이름으로 파일을 만듭니다.
그리고 파일에 참고 페이지에 기재된 다음 내용을 기록하고 저장합니다.
FROM ruby:2.5.1
ENV LANG C.UTF-8
RUN apt-get update -qq && apt-get install -y build-essential mysql-client nodejs
RUN gem install bundler
WORKDIR /tmp
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install
ENV APP_HOME /myapp
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
ADD . $APP_HOME

# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000

# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
이어서 "Gemfile"이라는 파일 이름으로 파일을 만듭니다.
여기에도 참고 페이지의 아래의 기록을 저장할 것이다.
source 'http://rubygems.org'
gem 'rails', '~> 5.2.0'
다음은 Gemfile.lock이라는 파일 이름을 사용하여 파일을 만듭니다.
이 안은 비면 돼.
터미널에서 "touch Gemfile.lock"으로 만들 수도 있습니다.
다음으로 "entrypoint.sh"라는 파일 이름을 사용하여 파일을 만듭니다.
여기에도 참고 페이지의 아래의 기록을 저장할 것이다.
entrypoint.sh
#!/bin/bash
set -e

# Remove a potentially pre-existing server.pid for Rails.
rm -f /myapp/tmp/pids/server.pid

# Then exec the container's main process (what's set as CMD in the Dockerfile).
exec "$@"
그리고 파일 이름 "docker-compose.yml"으로 파일을 만듭니다.
여기에도 참고 페이지의 아래의 기록을 저장할 것이다.
docker-compose.yml
version: '3.4'
services:
  db:
    image: mysql:5.7.17
    ports:
      - "3306:3306"
    volumes:
      - ./docker/mysql/volumes:/var/lib/mysql
    env_file: .env.dev
  web:
    build:
      context: .
      dockerfile: ./docker/rails/Dockerfile
    command: /bin/sh -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
    ports:
      - "3000:3000"
    volumes:
      - .:/myapp
    environment:
      RAILS_ENV: development
    env_file: .env.dev
    depends_on:
      - db
여기서 끝나면 다음과 같은 서류 구성이 될 거예요.

항목 생성


여기까지 끝내고 프로젝트 구축을 진행하겠습니다.
터미널에서 다음 명령을 실행합니다.
docker-compose run --rm web rails new . --force --database=mysql --skip-bundle
만약 문제가 없이 명령을 집행했다면 아래의 명령을 집행하세요.
docker-compose build

데이터베이스 생성 및 애플리케이션 실행


다음에 우리는 데이터베이스를 만들고 응용 프로그램을 실행할 것이다.
참고 페이지에서 설명한 바와 같이'config/database.yml'의 내용을 다음과 같이 바꿉니다.

config/database.yml
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: <%= ENV['MYSQL_ROOT_PASSWORD'] %>
  host: db

development:
  <<: *default
  database: development
"database.yml"의 모든 내용을 선택하고 상기 내용을 붙이지 않도록 주의하십시오.
"default"와 "development"부분만 변경합니다.
종료 후 터미널에서 다음 명령을 실행하십시오.
docker-compose up
상기 상태를 유지하고 다른 옵션 카드(Command+T)를 열고 다음 명령을 실행하여 데이터베이스를 만듭니다.
docker-compose run web rake db:create
브라우저에 Rails의 시작 화면이 표시되면 완료됩니다!!
정상적으로 표시할 수 없으면 다음 명령을 시도하십시오.
docker-compose down
docker-compose up

수고하셨습니다!!!

응용 프로그램 중지


아래 명령으로 멈춰라.가장 좋은 것은 "Command+C"같은 것을 피하는 것이다.
docker-compose down
여기서 마치겠습니다.
좋아요, Qiita, 트위터를 팔로우할 수 있다면 격려해 드리겠습니다!
마음대로 하세요~

좋은 웹페이지 즐겨찾기