第一本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="" ENV REFRESHED_AT 2020-01-29 11:51:00 RUN sed -i /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不需要贴,因为根本就用不到了.
相关推荐
魅惑青花瓷 2020-11-11
yangkang 2020-11-09
MichaelJScofield 2020-11-06
TaoTaoFu 2020-11-06
liaochaowu 2020-11-16
ChlatZed 2020-11-11
lnkToKing 2020-10-29
ChlatZed 2020-10-27
ChlatZed 2020-10-13
时光流水 2020-09-23
yangkang 2020-09-23
changecan 2020-09-22
dusuanyun 2020-09-21
newisI 2020-09-01
liaochaowu 2020-09-14
ShangQuan0 2020-09-10
fearlessxjdx 2020-09-04
libra0 2020-09-02
ChlatZed 2020-08-23