【发布时间】:2021-11-29 23:57:04
【问题描述】:
我正在尝试在 docker 中使用 redis 运行集成测试。我的 .yml 文件设置如下,但是当我运行 docker compose up 时,它不显示测试结果或根本不运行 dockerfile,但它响应成功并显示 redis 和测试容器已创建。 redis 容器保持运行,但测试很快退出。要查看测试结果,甚至检查它是否正在运行测试,我需要进行哪些更改?
version: '3.4'
services:
redis-service:
image: redis
container_name: redis
restart: on-failure
ports:
- "6379:6379"
test-service:
image: ${DOCKER_REGISTRY-}redistest
depends_on:
- redis-service
build:
context: .
dockerfile: tests/RedisTest/Dockerfile
这里是 docker 文件
FROM mcr.microsoft.com/dotnet/sdk:5.0-buster-slim AS build
WORKDIR /src
COPY ["tests/RedisTest/RedisTest.csproj", "tests/RedisTest/"]
RUN dotnet restore "tests/RedisTest/RedisTest.csproj"
COPY . .
RUN dotnet test "/src/tests/RedisTest/RedisTest.csproj" -c Release --logger "trx;LogFileName=test_results.trx"
【问题讨论】:
-
测试容器在测试完成后关闭,所以它按预期工作。要查看测试的进展情况,您可以使用
docker ps -a找到退出的容器,然后使用docker logs <container-name>查看日志。 -
@HansKilian 感谢您的回复。日志是空的,我什至不认为它在 docker compose up 上读取 dockerfile,因为当我传递一个不存在的文件时它不会抱怨。当我执行 docker compose build 时,它会运行 dockerfile,但由于它跳过了 redis 映像,因此测试失败了。
标签: docker asp.net-core .net-core redis