我目前正在开发一个.net核心项目与多个泊坞窗容器,2是.NET Core控制台应用程序,第三个是RabbitMQ的。显示多个泊坞窗容器交互式控制台在Visual Studio 2017年
我的目标是打开控制台窗口,我可以按回车键在泊坞窗容器运行控制台应用程序中的至少一个。
我通过右键点击我的控制台应用程序,然后点击“添加=>泊坞支持”添加泊坞窗支持。
这是我的搬运工,撰写文件:
version: '3'
services:
service1:
image: service1
build:
context: ./Service1
dockerfile: Dockerfile
links:
- "rabbitmq:rabbit"
service2:
image: service2
build:
context: ./Service2
dockerfile: Dockerfile
links:
- "rabbitmq:rabbit"
rabbitmq:
image: "rabbitmq:3-management"
ports:
- "8082:15672"
- "5672:5672"
这是我的搬运工,撰写-override.yml:运行服务2容器时 version: '3'
但Visual Studio中执行以下操作覆盖:
Service2:
build:
args:
source: obj/Docker/empty/
context: C:\Develop\vsts_tfs\Service2
dockerfile: Dockerfile
entrypoint: tail -f /dev/null
environment:
NUGET_FALLBACK_PACKAGES: /root/.nuget/fallbackpackages
image: service2:dev
labels:
com.microsoft.visualstudio.debuggee.arguments: ' --additionalProbingPath /root/.nuget/packages
--additionalProbingPath /root/.nuget/fallbackpackages bin/Debug/netcoreapp2.0/Service2.dll'
com.microsoft.visualstudio.debuggee.killprogram: /bin/bash -c "if PID=$(pidof
-x dotnet); then kill $PID; fi"
com.microsoft.visualstudio.debuggee.program: dotnet
com.microsoft.visualstudio.debuggee.workingdirectory: /app
links:
- rabbitmq:rabbit
volumes:
- C:\Develop\vsts_tfs\Service2:/app:rw
- C:\Users\MYUSER\vsdbg:/remote_debugger:ro
- C:\Program Files\dotnet\sdk\NuGetFallbackFolder:/root/.nuget/fallbackpackages:ro
- C:\Users\MYUSER\.nuget\packages:/root/.nuget/packages:ro
我的客服2需要得到一些控制台输入,所以我需要按“确认”键在交互式控制台。不幸的是我没有得到任何控制台窗口中打开 - 但我看到我的客服2的输出在调试,窗口,告诉我按回车 - 我只是不能按enter键。
关于this question,对于C++项目,在Debug-Menu中有一个所谓的“Linux控制台” - 但我没有这个按钮。我也试图通过安装“VISUAL C++为Linux开发”功能包括得到它,但它并没有帮助。
这是我调试菜单的样子: 任何想法如何,我可以打开控制台窗口来控制我的搬运工,容器内的应用程序?
就像注意事项:等待输入的应用程序仅用于开发目的,因为它将命令发送到RabbitMQ管道而不使用Web前端。这将有可能在Docker之外开始,但它会破坏“按下一个按钮来运行它们”(并且不设置多个启动项目)的舒适度,并且会添加码头和非码头组件的混合物我的解决方案
哪种服务正在等待这种情况下的输入? 'service1'或'service2'? –
它是Service2。我也尝试在docker-compose文件中用Service2交换Service1,但没有取得任何成功。 – Compufreak