使用重新创 build 置所需的所有文件更新帖子。 –仍然是同样的问题。无法访问容器中运行的服务。

FROM python:3

RUN apt-get update
RUN apt-get install -y ruby rubygems
RUN gem install sinatra

WORKDIR /app
ADD . /app/

EXPOSE 4567
CMD ruby hei.rb -p 4567

hei.rb
require 'sinatra'

get '/' do
  'Hello world!'
end

docker-compose.yml
version: '2'

services:
  web:
    build: .
    ports:
      - "4567:4567"

我通过运行docker-compose up --build .开始聚会
docker ps 返回:0.0.0.0:4567->4567/tcp
仍然,端口4567没有响应。使用主机上的curl进行测试。
$ curl 127.0.0.1:4567 # and 0.0.0.0:4567

localhost:4567在容器中回复
$ docker-compose exec web curl localhost:4567
Hello world!%`

我应该怎么做才能访问在端口4567上运行的Sinatra应用程序?

最佳答案

Sinatra绑定(bind)了错误的界面。
通过添加-o开关进行修复。
CMD ruby hei.rb -p 4567 -o 0.0.0.0

09-12 00:25