Java Windows环境中GitHub操作上的Testcontainers:";找不到有效的Docker环境。请查看日志并检查配置“;
我们在项目中大量使用。由于我们还希望能够在Windows上运行我们的Maven构建,因此我们使用矩阵策略构建()将Java Windows环境中GitHub操作上的Testcontainers:";找不到有效的Docker环境。请查看日志并检查配置“;,java,windows,maven,github-actions,testcontainers,Java,Windows,Maven,Github Actions,Testcontainers,我们在项目中大量使用。由于我们还希望能够在Windows上运行我们的Maven构建,因此我们使用矩阵策略构建()将Windows最新版本环境添加到GitHub操作管道中,如下所示: name: build on: push: jobs: build: strategy: matrix: os: [ubuntu-latest, windows-latest] runs-on: ${{ matrix.os }} steps:
Windows最新版本
环境添加到GitHub操作管道中,如下所示:
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测试用例失败(请参阅):
[INFO]运行de.codecentric.boot.admin.server.eventstore.HazelcastEventStoreWithClientConfigTest
错误:测试运行:1,失败:0,错误:1,跳过:0,经过的时间:0.877 s问题是在Windows Server中,默认情况下只有激活的Windows容器(没有Linux容器):
windows最新版本的问题在于它使用的是windows容器,而不是Linux容器。这意味着Testcontainers本身可以工作,但它启动的所有映像都是基于Linux的,在Windows容器模式下,它们显然无法启动:)
对此的“修复”是启用Linux容器的GitHub操作环境!但在谷歌搜索之后,这似乎并不那么容易。首先,我认为只需要启用LCOW(Windows上的Linux容器)。但正如所述,在GitHub操作Windows环境上激活LCOW并不容易(甚至不可能)
我深入研究了这个问题,发现问题在于Windows Server中只有默认激活的Windows容器(没有Linux容器):
windows最新版本的问题在于它使用的是windows容器,而不是Linux容器。这意味着Testcontainers本身可以工作,但它启动的所有映像都是基于Linux的,在Windows容器模式下,它们显然无法启动:)
对此的“修复”是启用Linux容器的GitHub操作环境!但在谷歌搜索之后,这似乎并不那么容易。首先,我认为只需要启用LCOW(Windows上的Linux容器)。但正如所述,在GitHub操作Windows环境上激活LCOW并不容易(甚至不可能)
我深入研究这个问题,发现
[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