美文网首页
在 M1 芯片的 MackBook 运行 Flink CDC 测

在 M1 芯片的 MackBook 运行 Flink CDC 测

作者: Yo_5529 | 来源:发表于2024-02-17 16:36 被阅读0次

    问题:Flink CDC用例中的 docker 镜像都是 X86 结构,在 M1 芯片上无法运行,所以需要解决的问题,就是在 M1 芯片上运行 X86 的镜像

    解决思路

    根据 https://github.com/marcelo-ochoa/oci-oracle-free/tree/19c-arm-slim 中提到的,可以使用 colima 安装虚拟机环境的方式使用 X86 镜像

    Currently, there is no Oracle Database port for ARM chips, hence Oracle Database Free images cannot run on the new Apple M chips via Docker Desktop.
    Fortunately, there are other technologies that can spin up x86_64 software on Apple M chips, such as colima. To run these Oracle Database Free images on Apple M hardware, follow these simple steps:

    • Install colima (instructions)
    • Run colima start --arch x86_64 --memory 4
    • Start container as usual

    跳转到 https://github.com/abiosoft/colima#installation, 需要先卸载当前环境的 docker-desktop 版本,然后使用命令安装 colima

    brew install colima
    brew install docker 
    brew install docker-compose
    

    接下来使用 colima 创建一个 X86 的虚拟环境

    colima start --arch x86_64 --memory 4
    

    查看 docker 运行在哪个环境

    # docker context list
    NAME       DESCRIPTION                               DOCKER ENDPOINT                                       ERROR
    colima *   colima                                    unix:///Users/yourname/.colima/default/docker.sock
    default    Current DOCKER_HOST based configuration   unix:///var/run/docker.sock
    

    启动 colima 后,会自动选择 colima 的环境。 我们复制 DOCKER ENDPOINT 的内容

    在环境变量中添加这些参数

    TESTCONTAINERS_RYUK_DISABLED=true;TESTCONTAINERS_DOCKER_CLIENT_STRATEGY=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy;DOCKER_HOST=unix:///Users/yourname/.colima/default/docker.sock
    

    参数介绍

    • TESTCONTAINERS_RYUK_DISABLED=true 关闭 RYUK 容器,这个容器会使用默认的 Docker (unix:///var/run/docker.sock)去清理其他容器,但是我们的 unix:///var/run/docker.sock 不生效,所以需要关闭。
    • TESTCONTAINERS_DOCKER_CLIENT_STRATEGY=org.testcontainers.dockerclient.EnvironmentAndSystemPropertyClientProviderStrategy 使用 EnvironmentAndSystemPropertyClientProviderStrategy 替换默认的 UnixSocketClientProviderStrategy, 默认的 UnixSocketClientProviderStrategy 加载的是 unix:///var/run/docker.sock, 而 EnvironmentAndSystemPropertyClientProviderStrategy 可以通过配置环境变量选择自定义的 docker。
    • DOCKER_HOST=unix:///Users/yourname/.colima/default/docker.sock 配置自定义的 docker 地址,和上面的 EnvironmentAndSystemPropertyClientProviderStrategy 一起使用。

    相关文章

      网友评论

          本文标题:在 M1 芯片的 MackBook 运行 Flink CDC 测

          本文链接:https://www.haomeiwen.com/subject/ctygtltx.html