Build Docker Image

Ruby로 만들어진 간단한 웹 애플리케이션을 도커라이징(=도커 이미지를 만듦)한다.

Sinatra라는 가벼운 웹 프레임워크를 사용하기 위해 새로운 폴더를 만들고 Gemfileapp.rb를 만든다.

Gemfile은 다음 같다.

source 'https://rubygems.org'
gem 'sinatra'

app.rb는 다음과 같다.

require 'sinatra'
require 'socket'

get '/' do
  Socket.gethostname
end

Gemfile은 패키지를 관리하고 app.rb는 호스트명을 출력한다.

아래와 같이 Dockerfile을 만든다.

FROM ruby:2.3
MAINTAINER dominic2009@snu.ac.kr
COPY Gemfile* /usr/src/app/
WORKDIR /usr/src/app
RUN bundle install
COPY . /usr/src/app
EXPOSE 4567
CMD bundle exec ruby app.rb -o 0.0.0.0

빌드한다. -t(--tag) 옵션을 통해 생성할 이미지 이름을 지정한다.

$ docker build -t app .

Successfully built xxxxxxxx 메시지가 보이면 정상적으로 이미지를 생성한 것이다.

아래 명령을 통해 생성된 이미지를 확인한다.

$ docker images

이미지를 생성을 확인하였으면 잘 동작하는지 컨테이너를 실행해본다.

$ docker run -d -p 8080:4567 app

localhost:8080에 접속하면 정상적으로 호스트명을 출력한다.

Last updated