Как связаться с докернизированным консольным приложением ядра .net? - PullRequest
0 голосов
/ 26 декабря 2018

Я играю с докером в Visual Studio.У меня есть консольное приложение, которое работает в Docker, и я хотел бы связаться с ним.

docker-compose.yml и Dockerfile являются стандартными, сгенерированными VS

docker-compose.yml:

version: '3.4'

services:

  publisher:
    image: ${DOCKER_REGISTRY-}publisher
    build:
      context: .
      dockerfile: Publisher/Dockerfile

Издатель / Dockerfile:

FROM microsoft/dotnet:2.2-runtime AS base
WORKDIR /app

FROM microsoft/dotnet:2.2-sdk AS build
WORKDIR /src
COPY Publisher/Publisher.csproj Publisher/
RUN dotnet restore Publisher/Publisher.csproj
COPY . .
WORKDIR /src/Publisher
RUN dotnet build Publisher.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish Publisher.csproj -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "Publisher.dll"]

Издатель:

namespace Publisher
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World, I'm a publisher!");

            while(true)
            {
                var line = Console.ReadLine();
                if (line == null)
                {
                    break;
                }

                Console.WriteLine(line.ToUpper());
            }
        }
    }
}

Я хочу записать в приложение издателя стандартный ввод.Запустив docker attach my_publisher, консоль вообще не принимает мой ввод.После отсоединения от контейнера упомянутый выше ввод печатается на моей консоли.

Я попытался изменить свой docker-compose.yml:

version: '3.4'

services:

  publisher:
    image: ${DOCKER_REGISTRY-}publisher
    build:
      context: .
      dockerfile: Publisher/Dockerfile
    stdin_open: true # HERE
    tty: true        # AND HERE

Теперь он, кажется, принимает мой ввод (этоне выводится на мою консоль после отсоединения), но я не вижу вывода, поэтому я не уверен.

Итак, что я должен сделать, чтобы иметь возможность вводить ввод в свое приложение, а также читатьвыход

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...