Tag: 泊坞

Docker化Flask API上的部分响应错误(长响应)

我有一个Flask API(Python 3.5),在我的本地设置中返回一个完整的响应。 目前,我已经docker化的应用程序,现在的应用程序运行在我的本地docker的容器。 我目前的问题是,当我发送相同的请求到泊坞窗容器内的相同的服务, 响应被截断 。 邮差只是停止工作,curl将返回CURL_PARTIAL_RESPONSE错误。 我的实际完整响应是> 6000000字节。 这是一个长期的回应。 但从docker我得到部分回应,它似乎被切断。 是否有一些环境variables或库,docker容器需要不要截断这个响应? 或者也许这是一些与烧瓶有关的财产? 我有本地相同的设置,并在本地设置响应不被截断。 我怀疑docker容器有一些设置,由于我回来的部分回应。 任何指针,这是赞赏。 DockerFile: FROM python:3.5 WORKDIR /worker_deploy ADD trainer /worker_deploy/ RUN pip install -r requirements.txt EXPOSE 80 EXPOSE 5000 ENTRYPOINT ["python","/service/run_docker_trainer.py"] requirements.txt有一些其他的库,但我只包括python和flask版本: Flask==0.12.2 Python 3.5.0 像这样启动容器: docker run -it -p 5000:5000 miracle (奇迹是我的docker形象,它开始于0.0.0.0:5000) 然后我发出一个POST请求127.0.0.1/test,我得到一个JSON 1.6MB的响应,我只接收部分输出,并说curl说curl连接closures(18)错误:CURL_PARTIAL_RESPONSE 我在烧瓶中的代码返回响应使用“jsonify”。 所以这不是stream式响应。 @flask_app.route('/train', methods=['POST']) def […]

如何从“Docker quickstartterminal”启动docker时添加`–registry-mirror`?

从docker分发文件: https : //github.com/docker/distribution 它说configurationdocker使用镜像,我们应该: Configuring the Docker daemon You will need to pass the –registry-mirror option to your Docker daemon on startup: docker –registry-mirror=https://<my-docker-mirror-host> daemon 我是docker工人的新手,我通过提供的“Docker Quickstart Termial”应用程序从mac正常启动docker,它实际上调用了一个start.sh shell: #!/bin/bash VM=default DOCKER_MACHINE=/usr/local/bin/docker-machine VBOXMANAGE=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage BLUE='\033[0;34m' GREEN='\033[0;32m' NC='\033[0m' unset DYLD_LIBRARY_PATH unset LD_LIBRARY_PATH clear if [ ! -f $DOCKER_MACHINE ] || [ ! -f $VBOXMANAGE ]; then […]

哪里可以看到谷歌App Engine上pipe理Vms上的失败部署日志?

当我尝试在pipe理的虚拟机上部署我的应用程序时,在谷歌应用程序引擎上部署失败。 我怀疑这是因为appengine不能运行我的容器,因为它有一个错误。 但是,我无法检查docker日志,因为容器运行失败。 它在本地工作,因为它有不同的configuration比生产。 我怀疑在生产我的应用程序不解决在本地networking中的数据库服务器IP,但我没有任何日志来调查。

如何在Kubernetes上创buildMongoDB集群?

我想创build这三台机器的MongoDB副本,它需要指定这些机器的IP地址? 但他们碰到了一个吊舱,拥有一个dynamic的IP。 如果您尝试指定DNS名称服务MongoDB,他说 新configurationXXXXX中描述的副本集app_replica中未描述的主机映射到此节点 如何configurationc k8s的MongoDB副本? 我使用k8s的DNS-addons。 我尝试初始化群集如下: var config = { "_id" : "app_replica", "members" : [ { "_id" : 0, "host" : "mongodb-node-01" }, { "_id" : 1, "host" : "mongodb-node-02" }, { "_id" : 2, "host" : "mongodb-node-03", "arbiterOnly" : true } ] } rs.initiate(config) configuration服务: apiVersion: v1 kind: Service metadata: name: […]

Docker:推迟依赖另一个容器的启动操作?

我有两种types的Docker容器:一种使用Web应用程序(nginx / php-fpm),另一种使用MySQL数据库。 两者都通过networking连接。 应用程序容器知道数据库容器,但是,数据库不知道零个或一个或多个应用程序容器是否可用。 这两种容器都使用Supervisord。 数据库容器必须启动mysqld ,这可能需要几秒钟的时间。 另一个容器必须执行一些启动操作,其中一部分需要数据库访问。 由于这些操作依赖于数据库容器,因此我在脚本的顶部放置了一个循环,等待数据库服务器可用: try=0 ok=0 until mysql -h$dbhost -u$dbuser -p$dbpass -e "USE $dbname" && ok=1; do [ $((++try)) -gt 30 ] && break sleep 1 done if [ $ok -gt 0 ]; then # DO STUFF else exit 1 fi 虽然这确实起作用,但是我发现有两个缺点:首先,如果数据库容器停机或者在启动应用程序容器时启动某个超时,则脚本将失败。 其次,应用程序容器将不知道数据库服务器上是否有更改(例如,迁移)。 当我知道Supervisord事件时 ,我想知道:如何在同一个networking中通知任意数量的其他容器? (注意:我没有限制使用Supervisord,我只是觉得这是最有希望的方法。)

无法拉谷歌/ appengine去泊坞窗图像

我试图将我的appengine go应用程序部署到托pipe虚拟机,我不断收到此错误 Pulling image: google/appengine-go Traceback (most recent call last): File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 170, in <module> main() File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/gcloud/gcloud.py", line 166, in main _cli.Execute() File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/calliope/cli.py", line 385, in Execute post_run_hooks=self.__post_run_hooks, kwargs=kwargs) File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/calliope/frontend.py", line 274, in _Execute pre_run_hooks=pre_run_hooks, post_run_hooks=post_run_hooks) File "/home/honeybooboo/google-cloud-sdk/./lib/googlecloudsdk/calliope/backend.py", line 928, in Run result = command_instance.Run(args) File "/home/honeybooboo/google-cloud-sdk/lib/googlecloudsdk/appengine/app_commands/setup_managed_vms.py", line 39, in Run […]

使用docker在supervisord中loggingstdout

我有几个需要运行supervisord的docker集装箱。 但是,我没有设法让主pipe捕获日志并将其输出到标准输出。 看起来,主pipe没有捕获他们的输出,并以与docker工作良好的方式吐出。 我很喜欢它前面的进程名称或东西。 我该怎么做? 从主pipe手册中不清楚。 除了主pipe,我还会考虑一个不同的工具。 它的缺点之一是它是用python编写的,它真的使Docker容器膨胀起来。 除了你的解决scheme,如果你有一个,是否有更好的工具与docker工作更好?

吞吐手表似乎在Docker中冻结

我试图“docker化”我们的开发环境。 我们有一个build立系统,监视我们的js / sass / jade文件的变化。 这是所有设置在docker以外的工作。 我已经创build了一个docker容器,并将我的代码库(使用一个卷)。 所有先进的npm安装和凉亭安装完成成功。 我最后一步运行吞咽,它运行正常,并build立,但没有拿起任何我们的任何js / sass / jade文件的任何后续更改。 我使用以下命令运行构build系统: docker run -it -v $(pwd):/code/ client gulp reset 有没有人在开发环境中有类似的设置? 你做了什么工作,让你的手表工作和展示大楼? 编辑:我想我可以做docker之外的吞噬生成/手表,只安装生成的文件,但我宁愿包含在docker的所有内部,以便主机不需要担心任何依赖build立/运行我们的应用 编辑2:这里是我的dockerfile和docker-compose.yml #Dockerfile FROM node:0.12.5 RUN mkdir /code WORKDIR /code RUN mkdir client WORKDIR client RUN mkdir .tmp ADD ./client/package.json /code/client/package.json ADD ./client/bower.json /code/client/bower.json RUN npm install gulp -g RUN […]

在Docker镜像中部署WAR文件的正确方法

docker容器中部署java项目的docker方式是什么? 我是否将战争复制到webapps中: FROM jetty:9.2.10 MAINTAINER Me "me@me.com" ADD ./target/*.war /var/lib/jetty/webapps/ROOT.war 或者我拿起爆炸的战争文件: FROM jetty:9.2.10 MAINTAINER Me "me@me.com" ADD ./target/app-0.1.0.BUILD-SNAPSHOT /var/lib/jetty/webapps/ROOT 通常情况下,如果它是一个普通的容器,但是使用docker,则会部署密封的war文件,这意味着每次进行小的更改时都会推送一个10-20MB的文件,而添加爆炸的war文件只会推动差别 – .class文件已经改变。 部署爆炸战争而不是战争文件有什么缺点吗?

Supervisord不会显示来自进程的stdout

试图捕获我的应用程序的日志与监pipe人在docker。 这是我的supervisord.conf: [supervisord] logfile=/dev/null nodaemon=true [program:autofs] command=automount -f redirect_stderr=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 [program:split-pdf] command=bin/split-pdf-server directory=/root/split-pdf redirect_stderr=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 启动容器后,一切正常,我可以看到我的应用程序运行的结果(它在networking共享上创buildPDF文件) 但日志显示从我的应用程序没有输出: 015-07-02 00:39:26,119 CRIT Supervisor running as root (no user in config file) 2015-07-02 00:39:26,124 INFO supervisord started with pid 5 2015-07-02 00:39:27,127 INFO spawned: 'split-pdf' with pid 8 2015-07-02 00:39:27,130 INFO spawned: 'autofs' with pid 9 […]