{"id":16445291,"url":"https://github.com/lloydmeta/zetcd-docker-compose","last_synced_at":"2026-06-10T02:31:33.336Z","repository":{"id":141731396,"uuid":"193854023","full_name":"lloydmeta/zetcd-docker-compose","owner":"lloydmeta","description":"A bare-bones docker-compose file for zetcd","archived":false,"fork":false,"pushed_at":"2019-06-26T07:43:47.000Z","size":3,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-26T09:46:46.801Z","etag":null,"topics":["docker-compose","etcd","etcdv3","zk","zookeeper"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lloydmeta.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-26T07:38:05.000Z","updated_at":"2019-06-26T07:47:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"5fdd54ec-6191-4e35-b210-2d46f4c3c665","html_url":"https://github.com/lloydmeta/zetcd-docker-compose","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lloydmeta/zetcd-docker-compose","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fzetcd-docker-compose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fzetcd-docker-compose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fzetcd-docker-compose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fzetcd-docker-compose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lloydmeta","download_url":"https://codeload.github.com/lloydmeta/zetcd-docker-compose/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fzetcd-docker-compose/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34134633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker-compose","etcd","etcdv3","zk","zookeeper"],"created_at":"2024-10-11T09:43:55.657Z","updated_at":"2026-06-10T02:31:33.321Z","avatar_url":"https://github.com/lloydmeta.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# zetcd docker-compose\n\nBare-bones [`docker-compose`](https://docs.docker.com/compose/) file that gets you a [zetcd](https://github.com/etcd-io/zetcd) ([Zookeeper](https://zookeeper.apache.org) \"personality\" for [etcd](https://etcd.io/)) running at `2181`.\n\n# Usage\n\n* Clone this repo, do `docker-compose up` in the directory you've cloned into.\n\n* Your `etcd`-backed ZK will be at `2181`\n\n    ```\n    15:56 $ zkctl watch / \u0026\n    [1] 17542\n    watch dir /\n    2019/06/26 16:33:53 Connected to 127.0.0.1:2181\n    2019/06/26 16:33:53 Authenticated: id=112426793504996108, timeout=1000\n    2019/06/26 16:33:53 Re-submitting `0` credentials after reconnect\n    [] \u0026{Czxid:0 Mzxid:0 Ctime:0 Mtime:0 Version:0 Cversion:-1 Aversion:0 EphemeralOwner:0 DataLength:0 NumChildren:1 Pzxid:0}\n    ✔ ~/Documents/dokka/zetcd-compose [master L|…3]\n    16:33 $ zkctl create /abc \"foo\"\n    2019/06/26 16:33:55 Connected to 127.0.0.1:2181\n    2019/06/26 16:33:55 Authenticated: id=112426793504996111, timeout=1000\n    2019/06/26 16:33:55 Re-submitting `0` credentials after reconnect\n    {Type:EventNodeChildrenChanged State:Unknown Path:/ Err:\u003cnil\u003e Server:}\n    [1]+  Done                    zkctl watch /\n    ```\n\n## Findings\n\nzetcd isn't compatible with [3.5 opcodes](https://github.com/etcd-io/zetcd/issues/49), so the latest `CuratorFramework` won't work.\n\nIn particular, `create2` is not supported (see [other opcodes](https://zookeeper.apache.org/doc/r3.5.3-beta/api/org/apache/zookeeper/ZooDefs.OpCode.html#create2))\n\n```scala\n16:30 $ amm\nLoading...\nWelcome to the Ammonite Repl 1.0.5\n(Scala 2.12.4 Java 1.8.0_152)\nIf you like Ammonite, please support our development at www.patreon.com/lihaoyi\n@ import $ivy.{`org.apache.curator:curator-framework:4.2.0`}\nimport $ivy.$\n\n@ import org.apache.curator.framework.CuratorFrameworkFactory\nimport org.apache.curator.framework.CuratorFrameworkFactory\n\n@ import org.apache.curator.retry._\nimport org.apache.curator.retry._\n\n@\nCuratorFrameworkFactory.builder().connectString(\"localhost:2181\").retryPolicy(new RetryOneTime(0)).build()\nSLF4J: Failed to load class \"org.slf4j.impl.StaticLoggerBinder\".\nSLF4J: Defaulting to no-operation (NOP) logger implementation\nSLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.\nres3: org.apache.curator.framework.CuratorFramework = org.apache.curator.framework.imps.CuratorFrameworkImpl@3dc39412\n\n@ res3.start\nSLF4J: Failed to load class \"org.slf4j.impl.StaticMDCBinder\".\nSLF4J: Defaulting to no-operation MDCAdapter implementation.\nSLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.\nr\n\n@ res3.blockUntilConnected\n\n\n@ res3.create().orSetData().forPath(\"/test\", Array())\norg.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /test\n  org.apache.zookeeper.KeeperException.create(KeeperException.java:102)\n  org.apache.zookeeper.KeeperException.create(KeeperException.java:54)\n  org.apache.zookeeper.ZooKeeper.create(ZooKeeper.java:1549)\n  org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1180)\n  org.apache.curator.framework.imps.CreateBuilderImpl$17.call(CreateBuilderImpl.java:1156)\n  org.apache.curator.connection.StandardConnectionHandlingPolicy.callWithRetry(StandardConnectionHandlingPolicy.java:64)\n  org.apache.curator.RetryLoop.callWithRetry(RetryLoop.java:100)\n  org.apache.curator.framework.imps.CreateBuilderImpl.pathInForeground(CreateBuilderImpl.java:1153)\n  org.apache.curator.framework.imps.CreateBuil\n```\n\nYou'll see the following logs:\n\n```\nzetcd_1  | unknown opcode  15\nzetcd_1  | I0626 07:31:50.126451       1 server.go:128] accepted remote connection \"172.21.0.1:34314\"\nzetcd_1  | I0626 07:31:50.126820       1 authconn.go:53] auth(\u0026{ProtocolVersion:0 LastZxidSeen:5 TimeOut:60000 SessionID:112426793504996099 Passwd:[48 227 153 200 59 247 69 155 193 11 94 238 16 121 18 32]})\nzetcd_1  | I0626 07:31:50.129784       1 pool.go:92] authresp=\u0026{ProtocolVersion:0 TimeOut:60000 SessionID:112426793504996099 Passwd:[48 227 153 200 59 247 69 155 193 11 94 238 16 121 18 32]}\nzetcd_1  | I0626 07:31:50.129929       1 server.go:73] serving serial session requests on id=18f6b92b219fb03\nzetcd_1  | I0626 07:31:50.129958       1 session.go:59] starting the session... id=112426793504996099\nzetcd_1  | unknown opcode  15\nzetcd_1  | I0626 07:31:50.131183       1 server.go:110] zkreq={xid:5 err:\"ptr expected\"}\nzetcd_1  | I0626 07:31:50.131455       1 session.go:61] finishing the session... id=112426793504996099; expect revoke...\nzetcd_1  | I0626 07:31:50.970954       1 server.go:128] accepted remote connection \"172.21.0.1:34316\"\nzetcd_1  | I0626 07:31:50.971482       1 authconn.go:53] auth(\u0026{ProtocolVersion:0 LastZxidSeen:5 TimeOut:60000 SessionID:112426793504996099 Passwd:[48 227 153 200 59 247 69 155 193 11 94 238 16 121 18 32]})\nzetcd_1  | I0626 07:31:50.975287       1 pool.go:92] authresp=\u0026{ProtocolVersion:0 TimeOut:60000 SessionID:112426793504996099 Passwd:[48 227 153 200 59 247 69 155 193 11 94 238 16 121 18 32]}\nzetcd_1  | I0626 07:31:50.977250       1 session.go:59] starting the session... id=112426793504996099\nzetcd_1  | I0626 07:31:50.976731       1 server.go:73] serving serial session requests on id=18f6b92b219fb03\nzetcd_1  | I0626 07:31:50.978180       1 server.go:110] zkreq={xid:7 req:*zetcd.GetDataRequest:\u0026{Path:/zookeeper/config Watch:true}}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flloydmeta%2Fzetcd-docker-compose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flloydmeta%2Fzetcd-docker-compose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flloydmeta%2Fzetcd-docker-compose/lists"}