gpt4 book ai didi

java - GitHub Actions : "Could not find a valid Docker environment. Please see logs and check configuration" 上 Windows 环境中的测试容器

转载 作者:行者123 更新时间:2023-12-01 23:32:35 29 4
gpt4 key购买 nike

我们正在使用 testcontainers-java重在我们的spring-boot-admin项目。由于我们还希望能够在 Windows 上运行我们的 Maven 构建,我们使用 Matrix 策略构建 (as supposed in this answer) 向我们的 GitHub Actions 管道添加了一个 windows-latest 环境,如下所示:

name: build

on:
push:

jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]

runs-on: ${{ matrix.os }}
steps:

- uses: actions/checkout@v2

- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8

- name: Build with Maven
run: |
mvn -B install --no-transfer-progress

现在我们的 Testcontainers JUnit 测试用例失败了(参见 full build log):

[INFO] Running de.codecentric.boot.admin.server.eventstore.HazelcastEventStoreWithClientConfigTest
Error: Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.877 s <<< FAILURE! - in de.codecentric.boot.admin.server.eventstore.HazelcastEventStoreWithClientConfigTest
Error: de.codecentric.boot.admin.server.eventstore.HazelcastEventStoreWithClientConfigTest Time elapsed: 0.877 s <<< ERROR!
java.lang.IllegalStateException: Could not find a valid Docker environment. Please see logs and check configuration

那么知道我们可以做些什么来解决这个问题吗?

最佳答案

问题是在 Windows Server 中,默认情况下只有 Windows 容器被激活(没有 Linux 容器)。 As Sergei Egorov stated :

The problem with windows-latest is that it uses Windows containers, not Linux containers. It means that Testcontainers itself works, but all the images that it starts are Linux-based and, in Windows containers mode, they obviously fail to start :)

对此的“修复”是拥有一个启用了 Linux 容器的 GitHub Action 环境!但是经过一些谷歌搜索之后,这似乎并不那么容易。首先,我虽然只需要启用 LCOW(Windows 上的 Linux 容器)。但是作为this great elaboration状态,在 GitHub Actions Windows 环境中激活 LCOW 并不容易(甚至不可能)。

我深入研究了这个问题并找到了 that LCOW was officially deprecated in 20.10 😢 支持 WSL2,它引入了 native Linux 运行时以及 Docker for Desktop on Windows 10 already favours this approach .

但是:我们使用的是 Windows Server 2019,它不是 Windows 10 桌面版。在 GitHub Actions 上,我们只有 nano 风格的服务器版本。可悲的是an open issue for the WSL2 support in Windows Server 2019 .并扫描 GitHub 操作 Windows Server 2019 docs我发现现在只安装了 WSLv1。

关于java - GitHub Actions : "Could not find a valid Docker environment. Please see logs and check configuration" 上 Windows 环境中的测试容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66077884/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com