Использование конвейеров AzureDevops Я пытаюсь запустить тесты newman для API в Docker. Ошибка ECONNREFUSED - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть конвейер Azure.

В нем я создаю Docker-контейнер, содержащий API .netcore.

Я создал набор тестов почтальона и пытаюсь запустить эти тесты для API в Docker.

Я выставил порт 5050 как часть файла dockerfile, создающего API. Я установил newman для использования localhost: 5050.

После запуска сценариев newman все тесты не пройдены, и у меня есть ошибка ниже:

POST http://localhost:5050/api/myendpoint [errored]
 connect ECONNREFUSED 127.0.0.1:5050
2⠄ JSONError in test-script

Это мой докер-файл:

FROM microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1803 AS base
WORKDIR /app
EXPOSE 5050

ENV ASPNETCORE_URLS http://+:5050

FROM microsoft/dotnet:2.1-sdk-nanoserver-1803 AS build
WORKDIR /src
COPY ["my.data.api/my.data.api.csproj", "my.data.api/"]
RUN dotnet restore "my.data.api/my.data.api.csproj"
COPY . .
WORKDIR "/src/my.data.api"

RUN dotnet build "my.data.api.csproj" -c Release -o /app
FROM build AS publish

RUN dotnet publish "my.data.api.csproj" -c Release -o /app
FROM base AS final

WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "my.data.api.dll"]

Кто-нибудь знает, что мне нужно сделать, чтобы разрешить доступ от агента сборки (размещенного агента) к API в контейнере Docker?

Дополнительная информация: в коде конвейера я создаю образ API и запускаю его:

    - task: Docker@1
  displayName: 'Build API Image'
  inputs:
    command: build
    dockerFile: 'my.data.api\Dockerfile'
    useDefaultContext: false
    buildContext: '.'



    - task: Docker@1
  displayName: 'Run API Image'
  inputs:
    command: run
    ports: '5050:5050'
    runInBackground: true
    containerName: $(Build.Repository.Name)

После этого я запускаю тесты. Первоначально я только EXPOSE 5050 в Dockerfile, но, пытаясь заставить это работать, я начал добавлять его везде ...

...