저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
Docker로 Ruby on Rails 애플리케이션 구축하기
이재홍 http://www.pyrasis.com 2014.08.02 ~ 2014.09.20
Rails와 데이터베이스 컨테이너 생성하기
Rails와 데이터베이스 이미지 준비가 끝났으니 컨테이너를 생성합니다. 먼저 데이터베이스 컨테이너부터 생성합니다.
$ sudo docker run -d --name db -e POSTGRESQL_PASSWORD=examplepassword postgresql
- 데이터베이스 컨테이너를 생성할 때
-e
옵션을 사용하여 POSTGRESQL_PASSWORD에 사용할 postgres 계정의 비밀번호를 설정합니다.
Rails 애플리케이션 디렉터리로 이동한 뒤 Rails 데이터베이스를 초기화합니다.
~$ export POSTGRESQL_HOST=$(sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" db)
~$ export DB_ENV_POSTGRESQL_PASSWORD=examplepassword
~$ export RAILS_ENV=development
~$ cd
~$ cd exampleapp
~/exampleapp$ rake db:create
export
명령을 사용하여 환경 변수의 POSTGRESQL_HOST에 db 컨테이너의 IP 주소를 설정합니다.docker inspect
명령에서-f
옵션을 사용하면 특정 항목만 출력할 수 있습니다. "{{ .NetworkSettings.IPAddress }}"는 컨테이너의 IP 주소입니다.
export
명령을 사용하여 환경 변수의 DB_ENV_POSTGRESQL_PASSWORD에 PostgreSQL데이터베이스 비밀번호를 설정합니다.export
명령을 사용하여 환경 변수의 RAILS_ENV에 development를 설정합니다(각자 상황에 따라 production, test를 설정합니다).rake db:create
를 실행하여 Rails 데이터베이스를 초기화합니다.
MySQL 사용하기
~$ export MYSQL_HOST=$(sudo docker inspect -f "{{ .NetworkSettings.IPAddress }}" db)
~$ export DB_ENV_MYSQL_ROOT_PASSWORD=examplepassword
~$ export RAILS_ENV=development
~$ cd
~$ cd exampleapp
~/exampleapp$ rake db:create
Rails 컨테이너를 생성합니다.
$ sudo docker run -d --name example-rails -p 80:80 --link db:db rails
- Rails 컨테이너를 생성할 때
--link
옵션을 사용하여 db 컨테이너를 db 별칭으로 연결합니다. 그리고-p
옵션을 사용하여 외부에서 80번 포트에 접근할 수 있도록 설정합니다.
컨테이너 생성이 끝났으면 웹 브라우저를 실행하고 서버의 IP 주소나 도메인으로 접속합니다.
추가 해설
--link
옵션은 추후 사라질 예정입니다. 네트워크를 생성하여 컨테이너를 연결하는 방법은 '6.2 Docker 컨테이너 연결하기'의 추가 해설을 참조하기 바랍니다.
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.