我目前正在開發一個.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