Docker Linux - Загрузить собственную / общую библиотеку внутри интеграционного теста - PullRequest
0 голосов
/ 24 января 2020

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

  1. Проект 'A'
  2. Project 'Интеграционный тест * A

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

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

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

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

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

...