-
Docker onbuild 이미지 이용하기 : rubyContainer 2016. 3. 28. 09:00루비 시나트라ruby의 인기있는 프레임워크중 하나인 sinatra를 docker를 이용해서 실행해보자.우선 Sinatra 프레임워크를 사용하기위한 Gemfile과 Gemfile.lock파일을 아래와 같이 만들자.Gemfilesource 'https://rubygems.org'gem 'sinatra'Gemfile.lockGEMremote: https://rubygems.org/specs:rack (1.6.4)rack-protection (1.5.3)racksinatra (1.4.6)rack (~> 1.4)rack-protection (~> 1.4)tilt (>= 1.3, < 3)tilt (2.0.1)PLATFORMSrubyDEPENDENCIESsinatraBUNDLED WITH1.10.6그리고 실제 간단한 Sinatra 프로그램을 준비해보자.app.rbrequire 'sinatra'set :bind, '0.0.0.0'get '/' do'Hello world!'end이제 이 프로그램을 실행하기위한 Dockerfile을 만들자.FROM ruby:2.1-onbuildEXPOSE 4567CMD ["ruby", "app.rb"]Dockerfile 내용을 살펴보면 간단하게 ruby의 2.1-onbuild 태그를 이용하는걸 볼 수 있다.그리고 CMD에서 ruby app.rb명령을 실행해서 앱을 실행하는걸 확인할 수 있다.이제 이 Dockerfile을 이용해서 이미지를 만들어서 실행해 보자.docker build --tag ruby-sinatra .docker run --rm -ti -p 4567:4567 ruby-sinatra이러면 sinatra 프로그램이 docker 컨테이너로 실행된걸 확인할 수 있다.Curl 127.0.0.1:4567을 하면 “Hello world!”가 출력되는걸 확인할 수 있다.루비 레일즈루비에서 가장 유명한 레일즈역시 docker를 이용해서 실행할 수 있다.기본 Rails 프로그램을 만들기 위해서 아래처럼 rails를 설치한다.gem install rails정상적으로 설치가 되었다면 rails 명령어를 이용해서 ruby-rails라는 기본 rails 프로그램을 생성한다.rails new ruby-rails생성된 ruby-rails 디렉토리 안에다가 다시 ruby용 Dockerfile을 만든다.FROM ruby:2.1-onbuildRUN apt-get update && apt-get install -y nodejsCMD ["rails", "server", "-b0.0.0.0"]앞서 살펴본 Sinatra 프로그램과 비슷한데, 차이점은 RUN 명령어를 통해서 nodejs 패키지를 설치해 줬다는 것이다. 기본 ruby docker 이미지에는 자바스크립트를 실행하기위한 런타임이 설치되어 있지 않는데, rails 프로그램을 실행하려면 시스템에 자바스크립트 패키지가 필요하다. 그래서 직접 nodejs를 설치해 준 것이다.이제 실행해보자.docker build --tag ruby-rails .docker run --rm -ti -p 3000:3000 ruby-rails웹페이지에서 3000번 포트로 접근하면 기본 rails 페이지가 보이게 된다.
'Container' 카테고리의 다른 글
Docker onbuild 이미지 이용하기 : Node.js (0) 2016.04.01 Docker onbuild 이미지 이용하기 : php (0) 2016.03.30 Docker onbuild 이미지 이용하기 : python (0) 2016.03.25 Docker 구조 (0) 2016.03.23 DockerHub 사용하기 (1) 2016.03.21 댓글