У меня есть конвейер 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, но, пытаясь заставить это работать, я начал добавлять его везде ...