创建Sinatra站点的Dockerfile

    1. $ mkdir sinatra && cd sinatra
    2. $ touch Dockerfile

    创建容器

    FROM ubuntu:18.04
    LABEL maintainer="james@example.com"
    ENV REFRESHED_AT 2014-06-01
    
    RUN apt-get -qq update && apt-get -qq install ruby ruby-dev build-essential redis-tools
    RUN gem install --no-rdoc --no-ri sinatra json redis
    
    RUN mkdir -p /opt/webapp
    
    EXPOSE 4567
    
    CMD [ "/opt/webapp/bin/webapp" ]
    

    构建新的Sinatra镜像

    $ sudo docker build -t jamtur01/sinatra .
    

    下载Sinatra Web应用程序(下载Sinatra 有问题 直接到这个项目里面下 https://github.com/turnbullpress/dockerbook-code

    $ cd sinatra
    $ wget --cut-dirs=3 -nH -r --reject Dockerfile,index.html --no-parent http://dockerbook.com/code/5/sinatra/webapp/
    $ ls -l webapp
    

    image.png

    确保webapp/bin/webapp可以执行

    $ chmod +x webapp/bin/webapp
    

    启动第一个Sinatra容器

    $ sudo docker run -d -p 4567 --name webapp \
      -v $PWD/webapp:/opt/webapp jamtur01/sinatra
    

    测试

    [root@VM_57_214_centos sinatra]# sudo docker port webapp 4567
    0.0.0.0:32770
    
    $ curl -i -H 'Accept: application/json' \
      -d 'name=Foo&status=Bar' http://localhost:32770/json
    

    image.png