第一本Docker书 5.2.1 sinatra容器问题解决
Posted tyoutetu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一本Docker书 5.2.1 sinatra容器问题解决相关的知识,希望对你有一定的参考价值。
这个问题卡了我两天,两天啊!两天啊!!!!!!!
一直报这个错.
exec user process caused "no such file or directory "
我想了想,可能是挂载卷的时候出的问题?
那么,我就尝试一下不使用挂载卷,我直接把文件copy过来
启动的时候也不用-v命令了
就直接 docker run -p 4567 --name webapp xxxxx/sinatra
发现换了个报错.
我不懂ruby,看这个样子,像是require ‘app‘这句话有问题
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))) 这句话的意思应该是找到lib目录下的文件
的确,lib目录下是有个app.rb的文件
我猜,难道是名字搞错了?于是我就改了一下 require ‘app.rb‘
发现还是同一个报错.
再仔细看一下,app.rb里面有个class App
那我们就不废话了 直接把这个文件里的东西拷贝过来得了,也不需要上面的那几句话了.
这就是webapp那个文件的完全体
再次运行,OJBK
麻蛋气死我了.
顺便把那些文件都贴一贴吧,方便其他人少走弯路.
Dockerfile
FROM ubuntu:16.04 LABEL maintainer="XXX@126.com" ENV REFRESHED_AT 2020-01-29 11:51:00 RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list RUN apt-get clean #RUN echo nameserver 8.8.8.8 > /etc/resolv.conf RUN apt-get update -o Acquire-by-hash=yes RUN apt-get -yqq install ruby 2.6.5 ruby-dev build-essential redis-tools RUN gem install --no-rdoc --no-ri sinatra json redis RUN mkdir -p /opt/webapp/bin EXPOSE 4567 COPY webapp/bin/webapp /opt/webapp/bin/ CMD ["/opt/webapp/bin/webapp"]
webapp
#!/usr/bin/ruby require "rubygems" require "sinatra" require "json" class App < Sinatra::Application set :bind, ‘0.0.0.0‘ get ‘/‘ do "<h1>DockerBook Test Sinatra app</h1>" end post ‘/json/?‘ do params.to_json end end App.run!
app.rb不需要贴,因为根本就用不到了.
以上是关于第一本Docker书 5.2.1 sinatra容器问题解决的主要内容,如果未能解决你的问题,请参考以下文章