Docker로 Rails, MySQL개발 환경 설정
by lostfind
Docker에서 Rails로 웹개발을 하기 위해 세팅했던 내용들
FROM mysql:5.7.25
RUN apt-get update && apt-get install -y apt-utils locales && \
rm -rf /var/lib/apt/lists/* && echo "ja_JP.UTF8 UTF-8" > /etc/locale.gen && \
locale-gen ja_JP.UTF-8
ENV LC_ALL ja_JP.UTF-8
ADD ./docker/mysql/my.cnf /etc/my.cnf
FROM ruby:2.6.1
ENV LANG C.UTF-8
#for MySQL
RUN apt-get update -qq && apt-get install -y apt-utils \
build-essential libpq-dev nodejs mysql-client
RUN gem install bundler
WORKDIR /tmp
ADD Gemfile Gemfile
ADD Gemfile.lock Gemfile.lock
RUN bundle install
ENV APP_HOME /accountbook
RUN mkdir -p $APP_HOME
WORKDIR $APP_HOME
ADD . $APP_HOME
version: '2'
services:
datastore:
image: busybox
volumes:
- /share
- ./docker/mysql/volumes:/var/lib/mysql
server:
build:
context: .
dockerfile: ./docker/nginx/Dockerfile
ports:
- '8090:80'
volumes_from:
- datastore
depends_on:
- datastore
web:
build:
context: .
dockerfile: ./docker/ruby/Dockerfile
command: bundle exec rails s -p 3000 -b '0.0.0.0'
ports:
- '3600:3000'
volumes:
- .:/accountbook
environment:
RAILS_ENV: development
volumes_from:
- datastore
depends_on:
- db
links:
- db
- db:database
- db:mysql
extends:
file: ./docker/mysql/password.yml
service: password
db:
build:
context: .
dockerfile: ./docker/mysql/Dockerfile
ports:
- '3606:3306'
volumes_from:
- datastore
depends_on:
- datastore
extends:
file: ./docker/mysql/password.yml
service: password
레일즈 초기 설정
$ docker-compose run --rm web rails new . --force --database=mysql --skip-bundle
DB 초기설정 (레일즈 이용)
$ docker-compose run --rm web bundle exec rake db:create
트러블
레일즈가 제대로 시작되지 않을 때
$ rm tmp/pids/server.pid
docker-compose 관련 명령어
# 중지
$ docker-compose down
# 실행
$ docker-compose up
# 실행 (데몬, 백그라운드)
$ docker-compose up
# 현재 상태 확인
$ docker-compose ps
Subscribe via RSS