Docker Linux - загрузка нативной / общей библиотеки внутри интеграционного теста

Мое решение содержит:

  1. Проект "А"
  2. Интеграционный тест проекта 'А

Теперь я создаю контейнер для проекта A. И я провожу интеграционные тесты, используя сценарий оболочки, который создает контейнер докера.

Код контейнера Docker:

docker run \
  -v "$(pwd):/src" \
  --workdir="/src" \
  -e "FIRESTORE_EMULATOR_HOST=${FIRESTORE_EMULATOR_HOST}" \
  -e "FIRESTORE_PROJECT_ID=${FIRESTORE_PROJECT_ID}" \
  -e "EngineApiBaseUrl=http://engine/" \
  -e "ConnectionStrings__SqlConnection=${SQL_CONNECTION_STRING}" \
  --link "${container1}:container1" \
  --link "${container2}:container2" \
  --link "${container3}:container3" \
  mcr.microsoft.com/dotnet/core/sdk:3.1-alpine \
  dotnet test \
  ./FunctionalTest/FunctionalTest.csproj \
  --logger "trx;LogFileName=../../test-result.trx" 

Это работает нормально, он выполняет тесты с использованием ядра 3.1, однако я столкнулся с этой проблемой:

https://github.com/grpc/grpc/issues/15605

И конкретно в моем DockerFile у меня есть:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine AS base
# in support of gRPC: https://github.com/grpc/grpc/issues/15605
RUN echo 'http://dl-cdn.alpinelinux.org/alpine/v3.8/main' >> /etc/apk/repositories && apk update --no-cache && apk add --no-cache bash libc6-compat=1.1.19-r11
WORKDIR /app
EXPOSE 80

Однако это изображение не обнаруживается тестовым контейнером и выдает ошибку. Другая странность заключается в том, что локально указанные файлы (в приведенной выше ссылке) создаются при сборке, а "dotnet test" выполняет сборку. Но файлы все еще отсутствуют.

Что я могу для этого сделать? Например, то, что я хотел бы сделать, но не хочу тратить на это час, если это не сработает, - это загрузить файл вручную, извлечь его и скопировать в нужный каталог. Но, как видите, возникает вопрос, что эти файлы обычно создаются при сборке с самого начала.

Есть ли у кого-нибудь рекомендации? Похоже, мне нужно построить еще один конвейер, возможно, специально для интеграционных тестов, и продублировать композицию, чтобы я мог получить это изображение там...

0 ответов

Другие вопросы по тегам