Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“码头工人”;入门(Python)";不起作用_Python_Docker - Fatal编程技术网

“码头工人”;入门(Python)";不起作用

“码头工人”;入门(Python)";不起作用,python,docker,Python,Docker,Python开发人员:请参阅最后一部分“针对Python开发人员” MacOs:10.13.1(17B1003) Docker版本: Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.8.3 Git commit: afdb6d4 Built: Tue Sep 26 22:40:09 2017 OS/Arch: darwin/amd64 Server: Versi

Python开发人员:请参阅最后一部分“针对Python开发人员”

MacOs:
10.13.1(17B1003)

Docker版本:

Client:
 Version:      17.09.0-ce
 API version:  1.32
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:40:09 2017
 OS/Arch:      darwin/amd64

Server:
 Version:      17.09.0-ce
 API version:  1.32 (minimum version 1.12)
 Go version:   go1.8.3
 Git commit:   afdb6d4
 Built:        Tue Sep 26 22:45:38 2017
 OS/Arch:      linux/amd64
 Experimental: true
以下“声明”不起作用:

运行:
docker运行-p 4000:80 friendlyhello

仅产生以下结果:

5e4d9c813323        friendlyhello       "python app.py"     6 seconds ago       Exited (0) 4 seconds ago                       focused_payne
docker日志
jsempty

如果:

docker run -it -p 4000:80 friendlyhello /bin/bash
run:python app.py

没什么。因此它可能与python app.py有关

注意:我不是Python开发人员

对于Python开发人员: app.py:

from flask import Flask
from redis import Redis, RedisError
import os
import socket

# Connect to Redis
redis = Redis(host="redis", db=0, socket_connect_timeout=2, socket_timeout=2)

app = Flask(__name__)

@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis, counter disabled</i>"

    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b> {hostname}<br/>" \
           "<b>Visits:</b> {visits}"
    return html.format(name=os.getenv("NAME", "world"), hostname=socket.gethostname(), visits=visits)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=80)
从烧瓶导入烧瓶
从redis导入redis,redis错误
导入操作系统
导入套接字
#连接到Redis
redis=redis(host=“redis”,db=0,socket\u connect\u timeout=2,socket\u timeout=2)
app=烧瓶(名称)
@附件路线(“/”)
def hello():
尝试:
访问量=redis.incr(“柜台”)
除错误外:
visions=“无法连接到Redis,计数器已禁用”
html=“你好{name}!”\
“主机名:{Hostname}
”\ “访问:{访问}” 返回html.format(name=os.getenv(“name”,“world”),hostname=socket.gethostname(),visions=visions) 如果名称=“\uuuuu main\uuuuuuuu”: 应用程序运行(主机=0.0.0.0',端口=80)
我认为您在做其他错误的事情,我复制了所有三个文件并运行得很好

以下是完整的步骤:(我建议您在运行此程序时使用
/tmp

(您可以突出显示所有这些内容并将其直接复制到终端中,然后查看此内容)


我们在这里寻找的是最后一行
helloworld!主机名:979c5e755f64
访问:无法连接到Redis,计数器已禁用
,这是我们了解其运行的方式。

docker logs 5e4d9c813323
为空?对,日志中没有任何内容。映像构建成功,您可以使用bash运行容器,并且可以在/app文件夹中看到app.py文件?只有python app.py没有做任何事情?你能展示你的dockerfileI吗?我只使用docker“Get started”中的一个。
# 1. Create a temp folder
# 2. Download all the files into the temp folder
# 3. Build the docker image
# 4. Run the image in a detached mode -- so we can curl the url
# 5. Sleep a little and wait until the app is fully up
# 6. Test that it all works
# 7. Stop the container (and we don't care about its stdout)
mkdir -p dockerapp && \
curl -sL https://gist.github.com/kingbuzzman/b48be91757fc60e97f6a9a189d006bd8/download | tar -xvz -C dockerapp --strip-components=1 && \
docker build -t friendlyhello dockerapp && \
docker run --rm -p 4000:80 --name friendlyhello -d friendlyhello && \
sleep 2 && \
curl -s http://localhost:4000/ -w "\n" && \
docker kill friendlyhello >/dev/null