{"id":16098650,"url":"https://github.com/funnyzak/canal-docker","last_synced_at":"2025-03-28T21:30:54.750Z","repository":{"id":65711838,"uuid":"597721238","full_name":"funnyzak/canal-docker","owner":"funnyzak","description":"Docker images for canal. The images is based on Official canal repo.","archived":true,"fork":false,"pushed_at":"2024-12-11T09:28:43.000Z","size":26,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T19:48:03.527Z","etag":null,"topics":["canal","canal-adapter","canal-admin","canal-server","docker","docker-image","java"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funnyzak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2023-02-05T12:48:37.000Z","updated_at":"2024-12-13T05:25:37.000Z","dependencies_parsed_at":"2023-02-19T06:00:25.419Z","dependency_job_id":null,"html_url":"https://github.com/funnyzak/canal-docker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funnyzak%2Fcanal-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funnyzak%2Fcanal-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funnyzak%2Fcanal-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funnyzak%2Fcanal-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funnyzak","download_url":"https://codeload.github.com/funnyzak/canal-docker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246104352,"owners_count":20724125,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["canal","canal-adapter","canal-admin","canal-server","docker","docker-image","java"],"created_at":"2024-10-09T18:24:16.962Z","updated_at":"2025-03-28T21:30:54.739Z","avatar_url":"https://github.com/funnyzak.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Canal Docker\n\n**Note**:\n\n\u003e This repository is no longer maintained. The latest built images can be found in the [Docker Release](https://github.com/funnyzak/docker-release?tab=readme-ov-file#alibaba-canal).\n\u003e 此仓库已不在维护，最新构建的镜像请查看 [Docker Release](https://github.com/funnyzak/docker-release?tab=readme-ov-file#alibaba-canal) 。\n\n| Image | Tag | Size | Pulls |\n|---|---|---|---|\n| Canal-Adapter | [![Docker Tag](https://img.shields.io/docker/v/funnyzak/canal-adapter?label=Canal-Adapter\u0026sort=semver\u0026style=flat-square)](https://hub.docker.com/r/funnyzak/canal-adapter) | [![Docker Image Size](https://img.shields.io/docker/image-size/funnyzak/canal-adapter/latest?label=Canal-Adapter)](https://hub.docker.com/r/funnyzak/canal-adapter) | [![Docker Pulls](https://img.shields.io/docker/pulls/funnyzak/canal-adapter?label=Canal-Adapter)](https://hub.docker.com/r/funnyzak/canal-adapter) |\n| Canal-Deployer | [![Docker Tag](https://img.shields.io/docker/v/funnyzak/canal-deployer?label=Canal-Deployer\u0026sort=semver\u0026style=flat-square)](https://hub.docker.com/r/funnyzak/canal-deployer) | [![Docker Image Size](https://img.shields.io/docker/image-size/funnyzak/canal-deployer/latest?label=Canal-Deployer)](https://hub.docker.com/r/funnyzak/canal-deployer) | [![Docker Pulls](https://img.shields.io/docker/pulls/funnyzak/canal-deployer?label=Canal-Deployer)](https://hub.docker.com/r/funnyzak/canal-deployer) |\n| Canal-Admin | [![Docker Tag](https://img.shields.io/docker/v/funnyzak/canal-admin?label=Canal-Admin\u0026sort=semver\u0026style=flat-square)](https://hub.docker.com/r/funnyzak/canal-admin) | [![Docker Image Size](https://img.shields.io/docker/image-size/funnyzak/canal-admin/latest?label=Canal-Admin)](https://hub.docker.com/r/funnyzak/canal-admin) | [![Docker Pulls](https://img.shields.io/docker/pulls/funnyzak/canal-admin?label=Canal-Admin)](https://hub.docker.com/r/funnyzak/canal-admin) |\n\n\nAlibaba Canal, a component for incremental subscription and consumption of binlogs in MySQL.  Images are built for `linux/amd64` and `linux/arm64` architectures, and based on Official [canal](https://github.com/alibaba/canal) repo.\n\nAll Images are installed under the `/opt/canal` directory.  For example, the `canal-adapter` service is installed under `/opt/canal/canal-adapter`.\n\n\nThis repository contains the following images:\n\n- [canal-server](https://github.com/alibaba/canal/tree/master/server)\n- [canal-adapter](https://github.com/alibaba/canal/tree/master/client-adapter)\n- [canal-admin](https://github.com/alibaba/canal/tree/master/admin)\n\n## Docker Pull\n\n```bash\n# Docker Hub\ndocker pull funnyzak/canal-adapter:latest\ndocker pull funnyzak/canal-deployer:latest\ndocker pull funnyzak/canal-admin:latest\n\n# GitHub Container Registry (GHCR)\ndocker pull ghcr.io/funnyzak/canal-adapter:latest\ndocker pull ghcr.io/funnyzak/canal-deployer:latest\ndocker pull ghcr.io/funnyzak/canal-admin:latest\n\n# Alibaba Cloud Container Registry\ndocker pull registry.cn-beijing.aliyuncs.com/funnyzak/canal-adapter:latest\ndocker pull registry.cn-beijing.aliyuncs.com/funnyzak/canal-deployer:latest\ndocker pull registry.cn-beijing.aliyuncs.com/funnyzak/canal-admin:latest\n```\n\n## Docker Images\n\n### Canal Adapter\n\n\u003c!-- [![Docker Stars](https://img.shields.io/docker/stars/funnyzak/canal-adapter.svg?style=flat-square)](https://hub.docker.com/r/funnyzak/canal-adapter/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/funnyzak/canal-adapter.svg?style=flat-square)](https://hub.docker.com/r/funnyzak/canal-adapter/)\n[![Docker Release Version](https://img.shields.io/docker/v/funnyzak/canal-adapter?sort=semver\u0026label=latest)](https://hub.docker.com/r/funnyzak/canal-adapter/)\n[![Image Size](https://img.shields.io/docker/image-size/funnyzak/canal-adapter)](https://hub.docker.com/r/funnyzak/canal-adapter/) --\u003e\n\n[Docker hub image: funnyzak/canal-adapter](https://hub.docker.com/r/funnyzak/canal-adapter)\n\n**Docker Pull Command**: `docker pull funnyzak/canal-adapter:latest`\n\n### Canal Server\n\n\u003c!-- [![Docker Stars](https://img.shields.io/docker/stars/funnyzak/canal-server.svg?style=flat-square)](https://hub.docker.com/r/funnyzak/canal-server/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/funnyzak/canal-server.svg?style=flat-square)](https://hub.docker.com/r/funnyzak/canal-server/)\n[![Docker Release Version](https://img.shields.io/docker/v/funnyzak/canal-server?sort=semver\u0026label=latest)](https://hub.docker.com/r/funnyzak/canal-server/)\n[![Image Size](https://img.shields.io/docker/image-size/funnyzak/canal-server)](https://hub.docker.com/r/funnyzak/canal-server/) --\u003e\n\n[Docker hub image: funnyzak/canal-server](https://hub.docker.com/r/funnyzak/canal-server)\n\n**Docker Pull Command**: `docker pull funnyzak/canal-server:latest`\n\n### Canal Admin\n\n\u003c!-- [![Docker Stars](https://img.shields.io/docker/stars/funnyzak/canal-admin.svg?style=flat-square)](https://hub.docker.com/r/funnyzak/canal-admin/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/funnyzak/canal-admin.svg?style=flat-square)](https://hub.docker.com/r/funnyzak/canal-admin/)\n[![Docker Release Version](https://img.shields.io/docker/v/funnyzak/canal-admin?sort=semver\u0026label=latest)](https://hub.docker.com/r/funnyzak/canal-admin/)\n[![Image Size](https://img.shields.io/docker/image-size/funnyzak/canal-admin)](https://hub.docker.com/r/funnyzak/canal-admin/) --\u003e\n\n[Docker hub image: funnyzak/canal-admin](https://hub.docker.com/r/funnyzak/canal-admin)\n\n**Docker Pull Command**: `docker pull funnyzak/canal-admin:latest`\n\n## Usage\n\n### Docker\n\n```bash\n# canal server\ndocker run -d --name canal-server \\\n  -v /path/to/canal-server/conf:/opt/canal/canal-server/conf \\\n  -v /path/to/canal-server/logs:/opt/canal/canal-server/logs \\\n  funnyzak/canal-server:latest\n\n# canal adapter\ndocker run -d --name canal-adapter \\\n  -v /path/to/canal-adapter/conf:/opt/canal/canal-adapter/conf \\\n  -v /path/to/canal-adapter/logs:/opt/canal/canal-adapter/logs \\\n  funnyzak/canal-adapter:latest\n\n# canal admin\ndocker run -d --name canal-admin \\\n  -v /path/to/canal-admin/conf:/opt/canal/canal-admin/conf \\\n  -v /path/to/canal-admin/logs:/opt/canal/canal-admin/logs \\\n  funnyzak/canal-admin:latest\n```\n\n### Compose\n\n```yaml\nversion: '3.7'\nservices:\n  canal-server:\n    image: funnyzak/canal-server:latest\n    container_name: canal-server\n    restart: on-failure\n    environment:\n      - canal.auto.scan=true\n      - canal.destinations=example_destination\n      - canal.instance.mysql.slaveId=166\n      - canal.instance.master.address=mysql:3306\n      - canal.instance.dbUsername=root\n      - canal.instance.dbPassword=examplepwd123456\n      - canal.instance.connectionCharset=UTF-8\n      - canal.instance.tsdb.enable=true\n      - canal.instance.gtidon=false\n      - canal.instance.parser.parallelThreadSize=16\n      - canal.instance.filter.regex=db_name.table_1,db_name.table_2\n    volumes:\n      - ./canal/canal-server/conf:/opt/canal/canal-server/conf\n      - ./canal/canal-server/logs:/opt/canal/canal-server/logs\n    networks:\n      - my-network\n    depends_on:\n      - mysql\n  canal-adapter:\n    image: funnyzak/canal-adapter:latest\n    container_name: canal-adapter\n    restart: on-failure\n    volumes:\n      - ./canal/canal-adapter/conf:/opt/canal/canal-adapter/conf\n      - ./canal/canal-adapter/logs:/opt/canal/canal-adapter/logs\n    networks:\n      - my-network\n    depends_on:\n      - canal-server\n      - mysql\n      - other storage...\n  canal-admin:\n    image: funnyzak/canal-admin:latest\n    container_name: canal-admin\n    restart: on-failure\n    volumes:\n      - ./canal/canal-admin/conf:/opt/canal/canal-admin/conf\n      - ./canal/canal-admin/logs:/opt/canal/canal-admin/logs\n    networks:\n      - my-network\n    depends_on:\n      - canal-server\nnetworks:\n  default:\n    external:\n      name: my-network\n```\n\nMore details about configuration, please refer to [canal](https://github.com/alibaba/canal).\n\n## Docker Build\n\nFor building docker images, you can use the following command:\n\n```bash\n# build canal server\ndocker build \\\n--build-arg VCS_REF=`git rev-parse --short HEAD` \\\n--build-arg BUILD_DATE=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\\n--build-arg CANAL_COMPONENT_VERSION=\"1.1.6\" \\\n--build-arg CANAL_COMPONENT_NAME=\"canal-server\" \\\n--build-arg CANAL_DOWNLOAD_NAME=\"canal.deployer\" \\\n-t funnyzak/canal-server .\n\n# build canal adapter\ndocker build \\\n--build-arg VCS_REF=`git rev-parse --short HEAD` \\\n--build-arg BUILD_DATE=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\\n--build-arg CANAL_COMPONENT_VERSION=\"1.1.6\" \\\n--build-arg CANAL_COMPONENT_NAME=\"canal-adapter\" \\\n--build-arg CANAL_DOWNLOAD_NAME=\"canal.adapter\" \\\n-t funnyzak/canal-adapter .\n\n# build canal admin\ndocker build \\\n--build-arg VCS_REF=`git rev-parse --short HEAD` \\\n--build-arg BUILD_DATE=`date -u +\"%Y-%m-%dT%H:%M:%SZ\"` \\\n--build-arg CANAL_COMPONENT_VERSION=\"1.1.6\" \\\n--build-arg CANAL_COMPONENT_NAME=\"canal-admin\" \\\n--build-arg CANAL_DOWNLOAD_NAME=\"canal.admin\" \\\n-t funnyzak/canal-admin .\n```\n\n## Contribution\n\nIf you have any questions or suggestions, please feel free to submit an issue or pull request.\n\n\u003ca href=\"https://github.com/funnyzak/canal-docker/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=funnyzak/canal-docker\" /\u003e\n\u003c/a\u003e\n\n## License\n\nMIT License © 2023 [funnyzak](https://github.com/funnyzak)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunnyzak%2Fcanal-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunnyzak%2Fcanal-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunnyzak%2Fcanal-docker/lists"}