2016-11-07 16 views
10

का उपयोग करते हुए रन डॉटनेट 1.1 मैं अपने मैक पर एक .NET कोर ऐप चलाने की कोशिश कर रहा हूं। मैं वीएस कोर का उपयोग कर रहा हूं और परियोजना को .NET 1.1 में अपग्रेड कर रहा हूं। सबकुछ ठीक काम करता है जब मैं इसे वीएससीओडी के माध्यम से चलाता हूं, हालांकि जब मैं इसे डॉकर का उपयोग करके चलाता हूं तो यह विफल हो जाता है।डॉकर

dotnet publish -c Release -o out 
docker build -t myApp . 

इस तरह Dockerfile दिखता है::

FROM microsoft/dotnet:1.1.0-preview1-runtime 
WORKDIR /service 
COPY out ./service/ 
ENTRYPOINT ["dotnet", "myApp.dll"] 

अनिवार्य रूप से मैं https://github.com/dotnet/dotnet-docker से चरणों का पालन कर रहा हूँ

मैं निम्न चरणों का पालन करते हैं। मैं हर समय हो रही है निम्न त्रुटि:

Did you mean to run dotnet SDK commands? Please install dotnet SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

मुझे यकीन है कि मैं यहाँ क्या याद आ रही है नहीं कर रहा हूँ ...

+0

क्या आपका एप्लिकेशन * myApp * कहा जाता है? – R0MANARMY

+1

मुझे पता चला कि क्या हुआ। मेरा वर्कडीर था/सेवा हालांकि मैं सबकुछ कॉपी कर रहा था ./service/ तो जब मैंने भाग लिया तो myApp.dll इसे नहीं ढूंढ रहा था। मेरी राय में एक गलत त्रुटि संदेश का थोड़ा सा। मैंने डॉकरफ़ाइल को करने के लिए बदल दिया: कॉपी करें ./ और सबकुछ काम करता है –

+2

'डॉटनेट 'संभवतः उस डीएल को नहीं देख रहा था जिसे आप निर्दिष्ट कर रहे थे और मानते थे कि आप एसडीके आदेशों में से किसी एक को चलाने की कोशिश कर रहे थे। – R0MANARMY

उत्तर

4

मैं अपने dockerfile निम्नलिखित कॉपी बयान करने के लिए परिवर्तित:

COPY out ./ 

तब उसने एंट्रीपॉइंट को काम करने के लिए बनाया क्योंकि यह myApp.dll को खोजने में सक्षम था। मुझे लगता है कि संदेश यहां सुधार किया जा सकता है, लेकिन यह मुझे लगता है कि

+0

में पहले डॉट के बाद केवल "डीएलएल" होने पर भी 100% सख्त है, यह अपारदर्शी त्रुटि डीएलएल-नाम से अधिक राय से भी आ सकती है (https://stackoverflow.com/questions/ देखें 48812386/dockerize-एक-Asnet कोर-WebAPI/48812472 # 48812472) –