【发布时间】:2020-04-30 08:43:41
【问题描述】:
我正在尝试 dockerize 一个简单的 Sinatra 应用程序,但是当 Docker 启动时,我无法通过暴露的端口 4567 访问 API。
这是我的 Dockerfile:
FROM ruby:2.7
RUN apt-get update -qq && apt-get install -y build-essential
RUN mkdir /app
WORKDIR /app
COPY Gemfile /app/Gemfile
COPY Gemfile.lock /app/Gemfile.lock
RUN bundle install
COPY . /app
EXPOSE 4567
CMD [ "bundle", "exec", "ruby", "main.rb", "-p", "4567" ]
然后:
docker build -t my-application .
docker run -p 4567:4567 my-application
当我访问localhost:4567:
但如果我访问容器并发出curl 请求,它会起作用:
docker exec -it bdcbfcaa57aa bash
我看不出我做错了什么。
【问题讨论】:
-
是您的服务器返回图像文件的问题,但如果您在容器中打开了调试外壳,它会返回不同的图像文件?还是返回实际的错误消息?您能否在问题本身中以文本形式描述您遇到的问题,包括任何相关错误和容器日志消息?
-
欢迎来到 SO!请删除图像并提供问题中的实际文本。 “Why not upload images of code on SO when asking a question?”和“Discourage screenshots of code and/or errors”解释原因。
标签: ruby docker dockerfile sinatra