gpt4 book ai didi

python-3.x - Dockerfile未在端口上运行

转载 作者:行者123 更新时间:2023-12-02 19:16:02 26 4
gpt4 key购买 nike

我有这个python文件:

#!/usr/bin/python
import tornado.web
import tornado.ioloop


class RequestHandler(tornado.web.RequestHandler):
def initialize(self):
with open("Desktop/ControlCode/BI.yaml") as f:
self.write(f.read())

class TEST(RequestHandler):
def get(self):
self.write("hahah")

class ONE(RequestHandler):

async def post(self):
self.write("hoo")

if __name__ == "__main__":
app = tornado.web.Application([
(r"/", TEST),
(r"/one", ONE)
])

app.listen(8888)
print("I'm listening on port 8888")
tornado.ioloop.IOLoop.current().start()

而这个dockerfile:
FROM python:3

ADD test.py /

RUN pip3 install tornado


EXPOSE 8888

CMD ["python", "./test.py"]
当我运行 docker run -it -d -p 8888:8888 52c097beb9b4时,会创建一个图像,但是当我转到 localhost:8888/时,它没有连接到它。
注意:如果我删除 with open(file),则可以使用。知道我能做什么吗?

最佳答案

Docker容器中的脚本无法访问主机上的Desktop/ControlCode/BI.yaml,因此我假定使用an OSError is raised,因为找不到该文件。在构建Dockerfile时复制文件,并尝试从容器中访问它。提防路径...
Dockerfile:

FROM python:3

ADD test.py /
COPY Desktop/ControlCode/BI.yaml /
...
从您的脚本中:
class RequestHandler(tornado.web.RequestHandler):
def initialize(self):
with open("/BI.yaml") as f:
self.write(f.read())

关于python-3.x - Dockerfile未在端口上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63453386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com