Tag: couchdb

如何将一个CouchDB映像推送到heroku-container-registry

我有这个Dockerfile FROM klaemo/couchdb:latest 据说这个图像公开了端口5984,但是,Heroku不允许自定义端口侦听,我怎么能映射两个端口$ PORT:5984,或者我怎么把一个CouchDB图像推送到Heroku。 提前致谢。

更改docker couchdb实例的数据库位置?

我有一个有两个磁盘的服务器:一个是操作系统使用的SSD,另一个是普通的2.5TB硬盘。 现在在这台服务器上,我使用Docker运行Fedora Server 22,并且有一个映像正在运行:Fedora / couchdb。 问题是这个容器正在将数据库保存到更小的SSD中,当它真的应该存储在更大的HDD中。 我怎样才能设置这个图像存储在硬盘上的数据库? 其他信息:

curl语法错误:追加couchdb文件失败与“冲突”?

我已经在我的Windows 10上安装了couchdb和mingw64,我可以用蒲团来操作我的沙发数据库,​​没问题。 然后,我尝试使用curl命令行。 我使用curl来创build名为“my_database”的数据库,我可以使用“GET”来查询它: $ curl -X GET http://localhost:5984/my_database/002 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 81 100 81 0 0 397 0 –:–:– –:–:– –:–:– 397{"_id":"002","_rev":"1-5e653801ca3cefde8abb6492ae3bcbcd","name":"mesi","age":23} 但我不能做任何数据更新,似乎我的curl语法有问题: $ curl -X PUT http://img.gdocker.com/linux/msg.jpg?res=1-5e653801ca3cefde8abb6492ae3bcbcd –data-binary @/e/msg.jpg -H "ContentType:image/jpg" % Total % Received % Xferd […]

Couchdb墨盒在泊坞窗图像中没有响应

我成功地将一个couchdb盒式磁带部署到wso2stratos,并成功激活成员。 为了执行dockerfile,我使用了这个 git代码。 其中包括下面的行,我不知道为什么它在那里! 有人可以解释下面的代码? RUN printf "[httpd]\nport = 8101\nbind_address = 0.0.0.0" > /usr/local/etc/couchdb/local.d/docker.ini EXPOSE 8101 CMD ["/usr/local/bin/couchdb"] 我试图指向http://127.0.0.1:5984/_utils/spec/run.htmlurl,并完美的工作。 我只是SSH到docker集装箱,并启动couchdb, root@instance-00000001:/usr/local/etc/couchdb/local.d# couchdb couchdb Apache CouchDB 1.6.1 (LogLevel=info) is starting. Apache CouchDB has started. Time to relax. [info] [<0.32.0>] Apache CouchDB has started on http://0.0.0.0:8101/ 然后我试着将浏览器指向http://0.0.0.0:8101/和http://127.0.0.1:5984/_utils/index.html两者都不起作用。 有人可以告诉我为什么我不能查看我的数据库和创build数据库窗口?

用一个可变的端口创build一个容器

我想为couchdb创build一个图像来运行多个couchdb实例。 由于需要澄清的原因,我希望容器中的couchdb实例侦听非默认端口,这在图像定义时也是未知的,因为这将是一个容器参数。 从主机我会运行的容器: sudo docker run -d -p 10000:30000 –name couchdb -e COUCHDB_PORT=30000 my/couchdb 这将使容器中的端口(30000),其中couchdb正在监听,可通过主机中的端口10000访问。 这个端口应该是每个容器的参数。 从容器中我可以这样做: curl -X GET localhost:30000 从主持人我可以做到: curl -X GET localhost:10000 这两个请求都会碰到同一个couchdb服务器。 设置容器很简单(只是处理环境variables来自动编辑couchdbconfiguration文件),但是现在我遇到了阻塞问题。 在Dockerfile的最后我有: # the default couchdb port, which in my case is not # known at image creation time EXPOSE 5984 显然我需要暴露在我的服务在容器内运行的端口,但我不知道,当创build图像。 这是一个运行时参数,每个容器都有所不同。 启动容器时如何显示端口?

本地到远程复制超时或仅复制less量文档CouchDb

我运行在Docker(klaemo / couchdb)中安装couchdb,并有端口转发安装,以便它可用于我的本地计算机。 除了添加pipe理员用户之外,我还没有configuration这个数据库。 这些是我的虚拟机端口转发设置: 我可以打开本地主机:5984 / _utils,浏览安装中的数据,我可以实例化从AWS中的远程数据库复制到这个couchDB,但如果我以另一种方式启动复制,它永远不会更新在被褥(所有我得到的是菜单栏中的微调)。 如果我用Curl进行复制,就像这样: curl -X POST http://localhost:5984/_replicate -d '{"source":"http://username:password@localhost:5984/database-name","target":"http://username:password@remote.url.com:5984/database-name","connection_timeout":"60000"}' -H "Content-Type: application/json" 我得到一个超时。 {"error":"timeout"} 如果我打开查尔斯(一个HTTP代理)并添加“代理”:“ http:// localhost:8888 ”curl请求有效载荷,没有stream量出现,所以我假设连接甚至从来没有尝试之间的本地沙发和远程沙发。 任何想法,为什么这是? 编辑 请注意,curl复制是在docker容器的shell中执行的。 我能够从同一个容器在本地和远程数据库上都创build新的数据库,只有复制超时。 编辑2经过一些试验和错误,我得到的复制运行,但它只复制一个文件的子集: 运行复制后的响应cURL: {"ok":true,"session_id":"3c195aa3c723696bfb33679d4de3632a","source_last_seq":79,"replication_id_version":3,"history":[{"session_id":"3c195aa3c723696bfb33679d4de3632a","start_time":"Mon, 20 Apr 2015 13:42:37 GMT","end_time":"Mon, 20 Apr 2015 13:42:38 GMT","start_last_seq":0,"end_last_seq":79,"recorded_seq":79,"missing_checked":53,"missing_found":53,"docs_read":53,"docs_written":**53**,"doc_write_failures":0}]} 目标数据库是一个空的数据库,所以它应该复制所有文件。 顺便说一句,这是本地原始数据库中cURL的结果: {"db_name":"db-name","doc_count":**435**,"doc_del_count":0,"update_seq":43116,"purge_seq":0,"compact_running":false,"disk_size":384835704,"data_size":7091262,"instance_start_time":"1429537029129810","disk_format_version":6,"committed_update_seq":43116} 所以它应该复制435个文件而不是53个。 我想如果我再次运行复制它会继续进程,但它没有运行(no_changes:true): {"ok":true,"no_changes":true,"session_id":"3c195aa3c723696bfb33679d4de3632a","source_last_seq":79,"replication_id_version":3,"history":[{"session_id":"3c195aa3c723696bfb33679d4de3632a","start_time":"Mon, 20 Apr 2015 13:42:37 GMT","end_time":"Mon, 20 Apr 2015 […]

Couchbase – 如何更改“max_kv_size_per_doc”?

我需要改变这个参数。 默认是1048576字节。 我想要至less2097152个字节。 我已经知道这不是build议的生产环境,因为我已经阅读过这个论坛。 我正在使用Couchbase 4.5和Docker。 我已经改变了文件“opt / couchbase / etc / couchdb / default.ini”,并重新启动容器,然后在容器内的服务。 但是不起作用。 我也试过这个:curl -X POST HTTP:// Administrator:password @ localhost:8091 / diag / eval -d'rpc:eval_everywhere(erlang,apply,[fun() – > couch_config:set(“mapreduce”,“ max_kv_size_per_doc“,”2097152“)end,[]])。' 但没有成功。 在我的testing过程中,我更改了文件“opt / couchbase / etc / couchdb / default.ini”,为参数“function_timeout”设置了一个新的值,并且工作。 我testing了一个睡眠里面的地图function,日志显示超时错误。 这意味着当我重新启动Couchbase时,它将采用新的configuration。 但是改变参数“max_kv_size_per_doc”没有任何区别。 有谁知道为什么? 任何帮助,将不胜感激。 问候,安杰洛

关于云端本地泊坞窗中压实机的内部错误

IBMbuild议我在本地使用cloudant docker进行testing。 这是我使用的图像https://hub.docker.com/r/ibmcom/cloudant-developer/ 它大部分时间基本上工作正常,但有时我得到这样的错误 { "error": "{badmatch,{error,enoent}}", "reason": "[{couch_mrview_compactor,swap_compacted,2,\n [{file,\"src/couch_mrview_compactor.erl\"},{line,261}]},\n {couch_index,commit_compacted,2,[{file,\"src/couch_index.erl\"},{line,371}]},\n {couch_index,handle_call,3,[{file,\"src/couch_index.erl\"},{line,190}]},\n {gen_server,try_handle_call,4,[{file,\"gen_server.erl\"},{line,607}]},\n {gen_server,handle_msg,5,[{file,\"gen_server.erl\"},{line,639}]},\n {proc_lib,init_p_do_apply,3,[{file,\"proc_lib.erl\"},{line,237}]}]", "ref": 2090670111 } 我不知道这个错误来自于couchdb本身。 或从couchdb扩展的任何云。 或IBM创build的Docker镜像的限制。 所以我不确定我应该问什么 非常感谢你

Node.js Koa应用程序和CouchDB在单个容器中

我有一个koa.js应用程序,我想在泊坞窗容器中运行。 这个应用程序需要couchdb运行,​​我想在同一个容器中运输。 我知道这不是最佳做法,但确实是我的用户开始使用的最佳方式。 Dockerfile: # DOCKER-VERSION 1.2.0 FROM centos:centos6 # Enable EPEL for CouchDB and Node.js RUN yum -y update; yum clean all RUN yum -y install epel-release; yum clean all RUN yum -y install tar # Install Node.js and CouchDB RUN yum -y install couchdb; yum clean all RUN service couchdb start RUN yum […]

如何在Docker中configurationCouchDB身份validation?

我正在尝试构build一个Dockerized CouchDB以在AWS中运行,为我的应用程序启动身份validation。 我有一个Dockerfile安装CouchDB 1.6.1,并以我需要的方式设置其余的环境。 但是,在我把它放在AWS上并且可能暴露给它之前,我想要进行一些身份validation。 文档显示了这一点: http://docs.couchdb.org/en/1.6.1/api/server/authn.html 这很难解释正确的configuration或者基本的安全需求。 我已经花了下午的时间阅读所有关于如何去做的问题,文档和博客,但是没有一致的故事,我不知道2009年的工作现在是否有效,哪些部分已经过时。 我在当前的ini文件中看到了一些可能的设置,但是它们与我在networkingsearch中看到的不匹配。 我即将开始尝试从各种阅读中收集到的各种随机build议,但是我认为在做试错之前我会问。 因为我希望它能够在AWS中运行,所以我需要它能够在无需手动修改的情况下启动。 我需要我的Dockerfile做configuration,所以使用蒲团不会削减它。 如果我需要,我可以添加一个脚本开始运行,以处理在那里不能做的事情。 我相信我需要设置一个pipe理员用户,然后为用户定义一个angular色,提供一个validationfunction来检查适当的angular色,然后创build具有该angular色的用户。 然后,我可以使用Cookie身份validation(通过SSL)来限制访问我的应用程序,提供正确的login和处理会话/ cookie。 它看起来像一些可以在Dockerfile中完成。 我需要在ini文件中configurationauthentication_handlers和一个admin用户吗? 我猜测修改数据库的操作需要通过一些运行时脚本来完成。 有没有人做过这个,或者看到过这样做的一些例子? 更新: 基于Kxepal的build议,我现在正在工作。 我的Dockerfile是从klaemo的docker-couchdb派生的,如下所述。 解决方法是强制数据库要求身份validation,但全新的安装将以Admin-Party身份启动。 为了制止这种情况,您必须创build一个pipe理员用户,这个用户可以保护系统数据,同时保持其他数据库的打开 首先,在Dockerfile中创build一个pipe理员用户: RUN sed -e '/^\[admins\]$/a admin=openpassword\n' -i /usr/local/etc/couchdb/local.ini (只是在使用-e的klaemo的sed模式之后),当CouchDB运行时,它将用salt和散列这个密码并replace它在local.ini文件中。 我提取这个密码,用这个代替“openpassword”,这样我的Dockerfile就没有纯文本的密码。 CouchDB可以通过它的forms告诉不要再次散列它。 现在保护其他数据库的正常模式是创build用户/angular色,并在validationfunction中使用它们来拒绝对其他数据库的访问。 由于我只是希望获得一个安全的系统来进行testing,所以我select推迟这个,只是使用local.ini中的设置来强制每个人进行身份validation。 Dockerfile现在需要设置require_valid_user标志: RUN sed -e '/^\[couch_httpd_auth\]$/a require_valid_user = true\n' -i /usr/local/etc/couchdb/local.ini 这需要取消注释WWW-Authenticate设置: RUN sed -e 's/^;WWW-Authenticate/WWW-Authenticate/' -i […]