无法使用docker-compose从本地访问docker应用

问题描述 投票:1回答:2

开始之前:我已经搜索了这个问题,并实现了“解决方案”的含义,但没有帮助(将主机设置为0.0.0.0)。所以,有了这种方式,

目录结构

|-- osr
|    |-- __init__.py
|-- requirements.txt
|-- Dockerfile
|-- docker-compose.yml

Dockerfile:

FROM python:3.7.5-buster

EXPOSE 5000 # i have tried with and without this

ENV INSTALL_PATH /osr
ENV FLASK_APP osr
ENV FLASK_ENV development
RUN mkdir -p $INSTALL_PATH

COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

COPY . .

CMD [ "flask", "run", "--host=0.0.0.0"]

docker-compose.yml:

version: '3.8'
services:
    web:
        build: .
        ports:
            - '5000:5000'
        expose:
            - '5000'
        volumes:
            - .:/osr

__ init __。py

import os
from flask import Flask

def create_app(test_config=None):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev'
    )

    @app.route('/hello')
    def hello():
        return 'Hello, World!'

    return app

docker-compose构建网络docker-compose运行网页

 * Serving Flask app "osr" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 225-441-434

以下所有内容均返回“无法访问此页面”

http://localhost
http://localhost:5000/hello
http://127.0.0.1:5000/hello

我什至尝试使用容器IP,>

docker exec -it 49e677 baship添加| grep全球inet 172.21.0.2/16 brd 172.21.255.255作用域全局eth0

http://127.21.0.2:5000/hello # nothing

没事。

我确定应用程序本身可以正常运行,因为我可以直接直接运行该应用程序。

$env:FLASK_APP="osr"
$env:FLASK_ENV="development"
flask run --host=0.0.0.0

运行正常

localhost

编辑:更新

当我通过简单的Dockerfile运行它时,我实际上能够到达容器...使用

docker run -it -p 5000:5000 osr_web#由docker-compose build构建的容器

有了这个,我能够通过localhost:5000 / hello访问端点

所以问题似乎在于通过docker-compose run将其旋转

完全有帮助吗?

UPDATE 2

[我发现当我运行docker ps -a时,我可以看到Docker运行实际上公开了端口,但是docker-compose运行没有:

enter image description here

开始之前:我已经搜索了这个问题,并实现了“解决方案”的含义,但没有帮助(将主机设置为0.0.0.0)。因此,目录结构|-...

docker docker-compose
2个回答
1
投票

您确定应用程序本身可以正常运行吗?我试图运行您的python __init__.py文件,但结果出错。


0
投票

我发现了问题。供参考,我正在运行以下版本:

© www.soinside.com 2019 - 2024. All rights reserved.