向minikube-Jenkins config.json公开本地Docker守护程序:系统找不到指定的路径

向minikube-Jenkins config.json公开本地Docker守护程序:系统找不到指定的路径,jenkins,kubectl,minikube,Jenkins,Kubectl,Minikube,我在Windows 10上运行Jenkins,安装了Docker toolbox和minikube(也在Windows 10上) 我可以使用以下Powershell命令将本地Docker图像“映射”到minikube:minikube Docker env | Invoke Expression,一切正常 我想用Jenkinsfile做同样的事情 stage('Build1') { steps { powershell """ m

我在Windows 10上运行Jenkins,安装了Docker toolbox和minikube(也在Windows 10上)

我可以使用以下Powershell命令将本地Docker图像“映射”到minikube:
minikube Docker env | Invoke Expression
,一切正常

我想用Jenkinsfile做同样的事情

stage('Build1') {
         steps {
            powershell """
            minikube docker-env | Invoke-Expression
            """

         }
      }
但是Jenkins在错误的位置查找config.json文件:

powershell.exe : * 
At C:\Program Files (x86)\Jenkins\workspace\api-gateway_master@tmp\durable-355fdbbe\powershellWrapper.ps1:3 char:1
+ & powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Comm ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (* :String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

X Error getting config: CreateFile C:\Windows\system32\config\systemprofile\.minikube\profiles\minikube\config.json: The system cannot find the path specified.
配置文件实际上位于userprofile路径中:
C:\Users\username\.minikube\profiles\minikube\config.json

shell命令出现相同错误(Git for Windows)

还使用此开关创建了新的minikube:-
-不安全的注册表windows 10 IP:5000

编辑:根据评论应用建议后:

在Jenkins中创建了环境变量:

MINIKUBE_HOME=C:\Users\user\.minikube
现在得到:

++ minikube docker-env
* 
X Error getting host status
* Error: [MACHINE_DOES_NOT_EXIST] state: machine does not exist
* Suggestion: Run 'minikube delete' to delete the stale VM, or and ensure that minikube is running as the same user you are issuing this command with

是否停止了minikube,从虚拟盒中删除了minikube VM,删除了文件夹
C:\Users\user\.minikube
minikube启动
,没有错误,但在运行Jenkins管道时,出现了相同的错误。

如何,要使Jenkins管道内的“minikube”集成顺利进行,只需应用上次错误输出时收到的提示

确保minikube与发出此命令的用户相同 指挥

假设Jenkins主服务器作为Windows服务运行(默认情况下,在本地系统帐户的上下文中),将其更改为专用本地用户帐户(例如“\user”)—与创建minikube实例时使用的帐户相同

另一种选择:使用专用管道

最终,您可以切换到另一个设置(困难的方式):


使用和基于groovy的管道(它重用主机docker守护进程-在您的例子中是Minikube)。

如何,要使Jenkins管道内部的“Minikube”集成顺利,只需应用上次错误输出时收到的提示

确保minikube与发出此命令的用户相同 指挥

假设Jenkins主服务器作为Windows服务运行(默认情况下,在本地系统帐户的上下文中),将其更改为专用本地用户帐户(例如“\user”)—与创建minikube实例时使用的帐户相同

另一种选择:使用专用管道

最终,您可以切换到另一个设置(困难的方式):


使用和基于groovy的管道(它重用主机docker守护进程-在您的情况下,它来自Minikube)。

无需再与Minikube为伍

  • 卸载的minikube
  • 卸载的Docker工具箱
  • 安装
  • 在Docker桌面上启用Kubernetes(设置Kubernetes启用Kubernetes)

现在库伯内特斯和詹金斯可以使用所有的docker图像了

无需再与minikube为伍了

  • 卸载的minikube
  • 卸载的Docker工具箱
  • 安装
  • 在Docker桌面上启用Kubernetes(设置Kubernetes启用Kubernetes)


现在Kubernetes和Jenkins都可以使用所有docker图像了

您可以在Jenkins管道定义环境变量(MINIKUBE_HOME)中设置默认配置文件的位置吗?@xerks,但您显然向前迈出了一步。现在,您需要指定minikube的配置文件,该配置文件包含特定minikube的VM实例的配置。您可以通过两种方式来实现这一点,一种是向每个minikube子命令添加'-p',另一种是使用'minikube profile'命令全局设置它一次(使用'minikube profile list'检查现有的命令)。实际上,您的最终目标是,从minikube的VM重新使用Docker的守护程序,或者希望在CI管道中使用minikube。如果是后者,请查看本教程:我将mimikube作为VirtualBox虚拟机,Jenkins安装在windows 10的本地。我想将windows 10上的docker图像公开给Minikube。请检查我的回答,应该可以解决您的问题。顺便说一句,为什么在Windows上的管道中运行“sh”步骤而不是“powershell”?您的执行器/从机/代理是否托管在另一台计算机上?这会使您的案例更加复杂。您能否在Jenkins管道定义环境变量(MINIKUBE_HOME)中设置以指向默认配置文件的位置?@xerks,但你显然向前迈出了一步。现在,您需要指定minikube的配置文件,该配置文件包含特定minikube的VM实例的配置。您可以通过两种方式来实现这一点,一种是向每个minikube子命令添加'-p',另一种是使用'minikube profile'命令全局设置它一次(使用'minikube profile list'检查现有的命令)。实际上,您的最终目标是,从minikube的VM重新使用Docker的守护程序,或者希望在CI管道中使用minikube。如果是后者,请查看本教程:我将mimikube作为VirtualBox虚拟机,Jenkins安装在windows 10的本地。我想将windows 10上的docker图像公开给Minikube。请检查我的回答,应该可以解决您的问题。顺便说一句,为什么您在Windows上的管道中运行“sh”步骤而不是“powershell”?,您的执行器/从/代理是否托管在另一台计算机上?这会使您的情况更加复杂。这很好,整个管道中不再出现错误,所有Jenkjns步骤都使用powershell,但本地创建的docker映像不会显示在minikube中(mikube ssh和docker映像)这很奇怪,请仔细检查您是否碰巧有两个不同的Minikube VM(=2个不同的docker注册表),使用您前面提到的“minikube配置文件列表”,您在本地安装了一个docker工具箱,您没有将docker映像推送到那里而不是minikube上的远程docker注册表吗?是的,docker映像存储在“本地”(windows 10),从CMD或Powerhshell type
docker images
时,我会看到使用Jenkins管道生成的所有图像。当我手动执行管道中指定的所有命令(Powershell控制台)时,所有命令都可以正常工作,但执行相同的fr时
++ minikube docker-env
* 
X Error getting host status
* Error: [MACHINE_DOES_NOT_EXIST] state: machine does not exist
* Suggestion: Run 'minikube delete' to delete the stale VM, or and ensure that minikube is running as the same user you are issuing this command with