準備
mkdir sinatra && cd sinatra
各種ファイルの用意
app.rb
require 'sinatra'
get '/' do
'Hello Docker'
end
config.ru
require './app.rb'
run Sinatra::Application
Gemfile
source 'http://rubygems.org'
gem 'sinatra'
gem 'foreman'
gem 'thin'
Procfile
web: bundle exec rackup config.ru -p 4567 -s thin -o 0.0.0.0
Dockerfile
FROM rneuo/docker-centos-base
MAINTAINER rneuo
RUN useradd --create-home -s /bin/bash webapp
RUN echo -n 'webapp:webapp' | chpasswd
ADD Gemfile /home/webapp/
ADD app.rb /home/webapp/
ADD config.ru /home/webapp/
ADD Procfile /home/webapp/
RUN chown -R webapp /home/webapp
USER webapp
WORKDIR /home/webapp
RUN bundle install --path vendor/bundle
VOLUME ["/var/log"]
EXPOSE 4567
CMD bundle exec foreman start -d . -p 4567
- rubyのインストールとかはベースのDockerイメージでやっています。
- rneuo/docker-centos-base
Dockerrun.aws.json
{
"AWSEBDockerrunVersion": "1",
"Image": {
"Name": "sinatra",
"Update": "true"
},
"Ports": [
{
"ContainerPort": "4567"
}
],
"Logging": "/var/log/"
}
コミット & プッシュ
git init
git add .
git commit -a -m "add sinatra"
git aws.push