Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 docker compose在附加后挂起_Python_Docker_Ubuntu_Docker Compose - Fatal编程技术网

Python docker compose在附加后挂起

Python docker compose在附加后挂起,python,docker,ubuntu,docker-compose,Python,Docker,Ubuntu,Docker Compose,当我运行docker compose时,它只是挂起。我的代码的第一行是一个print语句,我没有看到任何输出。 docker compose version: "3" services: grip-sim-results-parser: container_name: grip-sim-results-parser build: . ports: - "5000:5000" Dockerfile FROM library/python:3.7-stret

当我运行docker compose时,它只是挂起。我的代码的第一行是一个print语句,我没有看到任何输出。 docker compose

version: "3"
services:
  grip-sim-results-parser:
    container_name: grip-sim-results-parser
    build: .
    ports:
      - "5000:5000"
Dockerfile

FROM library/python:3.7-stretch
RUN apt-get update
RUN apt-get install -y vim
ADD . /code
WORKDIR /code
COPY requirements.txt /
RUN pip3 install --trusted-host pypi.org -r /requirements.txt

CMD ["python3", "app.py"]
docker编写版本

user@ubuntu:~/projects/grip/grip-sim-results-parser$ docker-compose --version
docker-compose version 1.22.0, build f46880fe
Docker版本

user@ubuntu:~/projects/grip/grip-sim-results-parser$ docker --version
Docker version 18.06.1-ce, build e68fc7a
Linux版本

user@ubuntu:~/projects/grip/grip-sim-results-parser$ uname -a
Linux ubuntu 4.13.0-46-generic #51-Ubuntu SMP Tue Jun 12 12:36:29 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
app.py

....
def main():
    print('main')
docker合成输出

user@ubuntu:~/projects/grip/grip-sim-results-parser$ docker-compose --verbose up --build
compose.config.config.find: Using configuration files: ./docker-compose.yml
docker.utils.config.find_config_file: Trying paths: ['/home/user/.docker/config.json', '/home/user/.dockercfg']
docker.utils.config.find_config_file: Found file at path: /home/user/.docker/config.json
docker.auth.load_config: Found 'auths' section
docker.auth.parse_auth: Found entry (registry='https://index.docker.io/v1/', username='jcald1')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/version HTTP/1.1" 200 543
compose.cli.command.get_client: docker-compose version 1.22.0, build f46880fe
docker-py version: 3.4.1
CPython version: 3.6.6
OpenSSL version: OpenSSL 1.1.0f  25 May 2017
compose.cli.command.get_client: Docker base_url: http+docker://localhost
compose.cli.command.get_client: Docker version: Platform={'Name': ''}, Components=[{'Name': 'Engine', 'Version': '18.06.1-ce', 'Details': {'ApiVersion': '1.38', 'Arch': 'amd64', 'BuildTime': '2018-08-21T17:23:27.000000000+00:00', 'Experimental': 'false', 'GitCommit': 'e68fc7a', 'GoVersion': 'go1.10.3', 'KernelVersion': '4.13.0-46-generic', 'MinAPIVersion': '1.12', 'Os': 'linux'}}], Version=18.06.1-ce, ApiVersion=1.38, MinAPIVersion=1.12, GitCommit=e68fc7a, GoVersion=go1.10.3, Os=linux, Arch=amd64, KernelVersion=4.13.0-46-generic, BuildTime=2018-08-21T17:23:27.000000000+00:00
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('gripsimresultsparser_default')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/networks/gripsimresultsparser_default HTTP/1.1" 404 61
compose.cli.verbose_proxy.proxy_callable: docker info <- ()
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/info HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker info -> {'Architecture': 'x86_64',
 'BridgeNfIp6tables': True,
 'BridgeNfIptables': True,
 'CPUSet': True,
 'CPUShares': True,
 'CgroupDriver': 'cgroupfs',
 'ClusterAdvertise': '',
 'ClusterStore': '',
 'ContainerdCommit': {'Expected': '468a545b9edcd5932818eb9de8e72413e616e86e',
                      'ID': '468a545b9edcd5932818eb9de8e72413e616e86e'},
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_network <- ('grip-sim-results-parser_default')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/networks/grip-sim-results-parser_default HTTP/1.1" 200 590
compose.cli.verbose_proxy.proxy_callable: docker inspect_network -> {'Attachable': True,
 'ConfigFrom': {'Network': ''},
 'ConfigOnly': False,
 'Containers': {},
 'Created': '2018-10-02T22:17:49.401421224-04:00',
 'Driver': 'bridge',
 'EnableIPv6': False,
 'IPAM': {'Config': [{'Gateway': '172.27.0.1', 'Subnet': '172.27.0.0/16'}],
          'Driver': 'default',
          'Options': None},
...
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=grip-sim-results-parser', 'com.docker.compose.oneoff=False']})
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/json?limit=-1&all=0&size=0&trunc_cmd=0&filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Dgrip-sim-results-parser%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D HTTP/1.1" 200 3
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=False, filters={'label': ['com.docker.compose.project=gripsimresultsparser', 'com.docker.compose.oneoff=False']})
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/json?limit=-1&all=0&size=0&trunc_cmd=0&filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Dgripsimresultsparser%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D HTTP/1.1" 200 3
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 0 items)
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=grip-sim-results-parser', 'com.docker.compose.service=grip-sim-results-parser', 'com.docker.compose.oneoff=False']})
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/json?limit=-1&all=1&size=0&trunc_cmd=0&filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Dgrip-sim-results-parser%22%2C+%22com.docker.compose.service%3Dgrip-sim-results-parser%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D HTTP/1.1" 200 1133
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 1 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68/json HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': 'docker-default',
 'Args': ['app.py'],
 'Config': {'ArgsEscaped': True,
            'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['python3', 'app.py'],
            'Domainname': '',
            'Entrypoint': None,
            'Env': ['PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.service.build: Building grip-sim-results-parser
compose.cli.verbose_proxy.proxy_callable: docker build <- (path='/home/user/grip-sim-results-parser', tag='grip-sim-results-parser_grip-sim-results-parser', rm=True, forcerm=False, pull=False, nocache=False, dockerfile=None, cache_from=None, labels=None, buildargs={}, network_mode=None, target=None, shmsize=None, extra_hosts=None, container_limits={'memory': None}, gzip=False, isolation=None, platform=None)
docker.api.build._set_auth_headers: Looking for auth config
docker.api.build._set_auth_headers: Sending auth config ('https://index.docker.io/v1/')
urllib3.connectionpool._make_request: http://localhost:None "POST /v1.25/build?t=grip-sim-results-parser_grip-sim-results-parser&q=False&nocache=False&rm=True&forcerm=False&pull=False HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker build -> <generator object APIClient._stream_helper at 0x7f5717d10a98>
Step 1/8 : FROM library/python:3.7-stretch
 ---> a9d071760c82
Step 2/8 : RUN apt-get update
 ---> Using cache
 ---> 75cc76eecf8a
Step 3/8 : RUN apt-get install -y vim
 ---> Using cache
 ---> af651ad63dda
Step 4/8 : ADD . /code
 ---> Using cache
 ---> 5ae41ae91671
Step 5/8 : WORKDIR /code
 ---> Using cache
 ---> a709b10facf8
Step 6/8 : COPY requirements.txt /
 ---> Using cache
 ---> 3d1a13239b96
Step 7/8 : RUN pip3 install --trusted-host pypi.org -r /requirements.txt
 ---> Using cache
 ---> 7e6d00d828ae
Step 8/8 : CMD ["python3", "app.py"]
 ---> Using cache
 ---> 1a2bdd386cd1
Successfully built 1a2bdd386cd1
Successfully tagged grip-sim-results-parser_grip-sim-results-parser:latest
compose.cli.verbose_proxy.proxy_callable: docker close <- ()
compose.cli.verbose_proxy.proxy_callable: docker close -> None
compose.cli.verbose_proxy.proxy_callable: docker containers <- (all=True, filters={'label': ['com.docker.compose.project=grip-sim-results-parser', 'com.docker.compose.service=grip-sim-results-parser', 'com.docker.compose.oneoff=False']})
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/json?limit=-1&all=1&size=0&trunc_cmd=0&filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Dgrip-sim-results-parser%22%2C+%22com.docker.compose.service%3Dgrip-sim-results-parser%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D HTTP/1.1" 200 1133
compose.cli.verbose_proxy.proxy_callable: docker containers -> (list with 1 items)
compose.cli.verbose_proxy.proxy_callable: docker inspect_image <- ('grip-sim-results-parser_grip-sim-results-parser')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/images/grip-sim-results-parser_grip-sim-results-parser/json HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker inspect_image -> {'Architecture': 'amd64',
 'Author': '',
 'Comment': '',
 'Config': {'ArgsEscaped': True,
            'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['python3', 'app.py'],
            'Domainname': '',
            'Entrypoint': None,
...
compose.cli.verbose_proxy.proxy_callable: docker inspect_container <- ('1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68')
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68/json HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker inspect_container -> {'AppArmorProfile': 'docker-default',
 'Args': ['app.py'],
 'Config': {'ArgsEscaped': True,
            'AttachStderr': False,
            'AttachStdin': False,
            'AttachStdout': False,
            'Cmd': ['python3', 'app.py'],
            'Domainname': '',
            'Entrypoint': None,
            'Env': ['PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.parallel.feed_queue: Pending: {<Service: grip-sim-results-parser>}
compose.parallel.feed_queue: Starting producer thread for <Service: grip-sim-results-parser>
Starting grip-sim-results-parser ... 
compose.parallel.feed_queue: Pending: {<Container: grip-sim-results-parser (1f8f0b)>}
compose.parallel.feed_queue: Starting producer thread for <Container: grip-sim-results-parser (1f8f0b)>
compose.cli.verbose_proxy.proxy_callable: docker attach <- ('1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68', stdout=True, stderr=True, stream=True)
urllib3.connectionpool._make_request: http://localhost:None "POST /v1.25/containers/1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68/attach?logs=0&stdout=1&stderr=1&stream=1 HTTP/1.1" 101 0
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/containers/1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68/json HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker attach -> <docker.types.daemon.CancellableStream object at 0x7f5717d32908>
compose.cli.verbose_proxy.proxy_callable: docker start <- ('1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68')
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
compose.parallel.feed_queue: Pending: set()
urllib3.connectionpool._make_request: http://localhost:None "POST /v1.25/containers/1f8f0b4c36a90c4771e7a2373986dcaed61dbfd140c66b5840bf310edd0c0e68/start HTTP/1.1" 204 0
compose.cli.verbose_proxy.proxy_callable: docker start -> None
Starting grip-sim-results-parser ... done
compose.parallel.feed_queue: Pending: set()
compose.parallel.parallel_execute_iter: Finished processing: <Service: grip-sim-results-parser>
compose.parallel.feed_queue: Pending: set()
Attaching to grip-sim-results-parser
compose.cli.verbose_proxy.proxy_callable: docker events <- (filters={'label': ['com.docker.compose.project=grip-sim-results-parser', 'com.docker.compose.oneoff=False']}, decode=True)
urllib3.connectionpool._make_request: http://localhost:None "GET /v1.25/events?filters=%7B%22label%22%3A+%5B%22com.docker.compose.project%3Dgrip-sim-results-parser%22%2C+%22com.docker.compose.oneoff%3DFalse%22%5D%7D HTTP/1.1" 200 None
compose.cli.verbose_proxy.proxy_callable: docker events -> <docker.types.daemon.CancellableStream object at 0x7f5717ce9cc0>
user@ubuntu:~/projects/grip/grip-sim结果解析器$docker-compose--verbose-up--build
compose.config.config.find:使用配置文件:./docker-compose.yml
docker.utils.config.find_config_文件:尝试路径:['/home/user/.docker/config.json','/home/user/.dockercfg']
docker.utils.config.find_config_文件:在路径:/home/user/.docker/config.json处找到文件
docker.auth.load_config:找到“auths”部分
docker.auth.parse_auth:找到条目(注册表=)https://index.docker.io/v1/“,username='jcald1')
urllib3.connectionpool.\u发出请求:http://localhost:None “GET/v1.25/version HTTP/1.1”200 543
compose.cli.command.get_客户端:docker compose版本1.22.0,构建f46880fe
docker py版本:3.4.1
CPython版本:3.6.6
OpenSSL版本:OpenSSL 1.1.0f 2017年5月25日
compose.cli.command.get_客户端:Docker base_url:http+docker://localhost
compose.cli.command.get_客户端:Docker版本:平台={'Name':''},组件=[{'Name':'Engine','version':'18.06.1-ce','Details':{'ApiVersion':'1.38','Arch':'amd64','BuildTime':'2018-08-21T17:23:27.000000000+00:00','Experimental':'false','GitCommit':'e68fc7a','GoVersion':'go1.10.3','KernelVersion':'4.13.0-46-generic','MinAPIVersion':'1.12','Os':'linux'}],版本=18.06.1-ce,ApiVersion=1.38,MinAPIVersion=1.12,GitCommit=e68fc7a,GoVersion=go1.10.3,Os=linux,Arch=amd64,KernelVersion=4.13.0-46-generic,构建时间=2018-08-21T17:23:27.000000000+00:00
compose.cli.verbose_proxy.proxy_可调用:docker inspect_network a9d071760c82
步骤2/8:运行apt获取更新
--->使用缓存
--->75cc76eecf8a
步骤3/8:运行apt get安装-y vim
--->使用缓存
--->af651ad63dda
步骤4/8:添加/编码
--->使用缓存
--->5ae41ae91671
步骤5/8:WORKDIR/代码
--->使用缓存
--->a709b10facf8
步骤6/8:复制requirements.txt/
--->使用缓存
--->3d1a13239b96
步骤7/8:运行pip3安装——可信主机pypi.org-r/requirements.txt
--->使用缓存
--->7e6d00d828ae
步骤8/8:CMD[“python3”,“app.py”]
--->使用缓存
--->1A2BD386CD1
成功构建1a2bdd386cd1
已成功标记grip-sim-results-parser_grip-sim-results-parser:最新
compose.cli.verbose\u proxy.proxy\u可调用:docker close None
compose.cli.verbose\u proxy.proxy\u可调用:docker容器(包含1项的列表)
compose.cli.verbose_proxy.proxy_可调用:docker inspect_image{'Architecture':'amd64',
“作者”:“,
“评论”:“,
'Config':{'ArgsEscaped':True,
“AttachStderr”:False,
“AttachStdin”:错误,
“AttachStdout”:错误,
'Cmd':['python3','app.py'],
“域名”:“,
“入口点”:无,
...
compose.cli.verbose_proxy.proxy_可调用:docker检查_容器{'AppArmorProfile':'docker default',
'Args':['app.py'],
'Config':{'ArgsEscaped':True,
“AttachStderr”:False,
“AttachStdin”:错误,
“AttachStdout”:错误,
'Cmd':['python3','app.py'],
“域名”:“,
“入口点”:无,
‘Env’:[‘PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin',
...
compose.parallel.feed_队列:挂起:{}
compose.parallel.feed_队列:启动的生产者线程
正在启动grip sim结果分析器。。。
compose.parallel.feed_队列:挂起:{}
compose.parallel.feed_队列:启动的生产者线程
compose.cli.verbose\u proxy.proxy\u可调用:docker attach
compose.cli.verbose\u proxy.proxy\u可调用:docker start None
正在启动grip sim结果分析器…完成
compose.parallel.feed_队列:挂起:set()
compose.parallel.parallel\u execute\u iter:已完成处理:
compose.parallel.feed_队列:挂起:set()
附加到grip sim结果分析器
compose.cli.verbose\u proxy.proxy\u可调用:docker事件

要查看python的输出,请尝试向docker compose.yml添加以下行:

grip-sim-results-parser:
  environment:
    - PYTHONUNBUFFERED=1

要查看python的输出,请尝试将以下行添加到
docker compose.yml

grip-sim-results-parser:
  environment:
    - PYTHONUNBUFFERED=1

谢谢。基本错误自行消失,但这是一个好消息。在我的版本中,我遇到了类似的问题,
,而True:print('main')
工作正常,但如果我添加了
time.sleep(…)
print
语句之后,将不会打印任何内容。向环境中添加
PYTHONUNBUFFERED=1
解决了这个问题,但是,最好了解其背后的原因。默认情况下,Python buffers stdout会阻止打印输出。这就是为什么如果重新启动容器,您可能会看到所有内容输出立即显示。其他选项在“谢谢”中列出。基本错误自行消失,但这是一个好消息。在我的版本中,我遇到了类似的问题,
,而True:print('main')
工作得很好,但如果我添加了
time.sleep(…)
print
语句之后,将不会打印任何内容。向环境中添加
PYTHONUNBUFFERED=1
解决了这个问题,但是,最好了解其背后的原因。默认情况下,Python buffers stdout会阻止打印输出。这就是为什么如果重新启动容器,您可能会看到所有内容输出立即显示。中列出了其他选项