如何在 eclipse-che 环境中配置 docker 引擎

问题描述

我有一台 mac,我已经使用命令在 docker-desktop 中使用 chectl 安装了 eclipse che

chectl server:deploy --platform=docker-desktop --installer=helm

为了安装任何插件/apks,我们必须有自己的recepie 所以 我使用 docker 文件构建了一个自定义配方并使用了图像 从码头工人:dind 将它推送到 docker hub,我的 devfile 看起来像这样,其中 amoldeshpande/custom-node-test 是我推送到 dockerhub 的 docker 文件

apiVersion: 1.0.0
Metadata:
  name: test
components:
  - mountSources: true
    endpoints:
      - name: test
        port: 3000
    memoryLimit: 512Mi
    type: dockerimage
    alias: nodejs
    image: amoldeshpande/custom-node-test

现在当我在 eclipse che 工作区中运行 docker 命令时 / $ 泊坞窗图像 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行? 我收到此错误

我发现它需要特权访问,所以我编辑了 che 部署文件

kubectl edit deployment che  -n eclipse-che

securityContext:
     privileged: true



kubectl rollout restart deployment/che -n eclipse-che

而且,我仍然遇到同样的错误。 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行? 有人可以帮我吗?

解决方法

在 eclipse che env 中使用 docker 的最佳方法是使用 buildah 插件,它不需要额外的设置,因为它不需要任何 root 访问权限。 在devfile中,添加这个插件

 - id: moby/buildkit/latest
   type: chePlugin

并且您可以运行所有 docker 命令。