Tôi đang cố gắng tạo ra một hình ảnh của giải pháp ASP.NET 5 của tôi bao gồm 4 dự án. Dưới đây là cấu trúc:ASP.NET 5: docker xây dựng với giải pháp đa dự án
- FlashTools (ASP.NET thư viện 5 lớp)
- Models (ASP.NET 5 lớp thư viện)
- QuizzCorrector (ASP.NET 5 Web Application)
- QuizzService (ASP NET 5 thư viện lớp)
tôi đã một Dockerfile đơn giản mà trông như thế này:
FROM microsoft/aspnet
COPY . /app
WORKDIR /app
RUN ["kpm", "restore"]
EXPOSE 5004
ENTRYPOINT ["k", "kestrel"]
Nhưng không chắc phải đặt nó ở đâu. Trong thư mục gốc của giải pháp của tôi, nơi global.json nằm trong thư mục Ứng dụng Web của tôi, nơi project.json của tôi là? Tất nhiên tôi đã sửa đổi nó tùy thuộc vào nơi tập tin này được đặt.
Dù sao cả hai dường như làm việc vì nó tải về tất cả các thư viện tôi cần khi tôi chạy lệnh
Docker xây dựng quizzcorrector -t.
Vấn đề của tôi là tại một thời điểm Docker nói với tôi
Không thể xác định vị trí Models> = 1.0.0
Không thể xác định vị trí FlashTools> = 1.0.0
Không thể xác định vị trí QuizzService> = 1.0.0
Tôi đã xem trên chủ đề này https://github.com/aspnet/aspnet-docker/issues/19 rằng tôi n một giải pháp đa dự án, chúng ta nên chạy lệnh "gói kpm" để đóng gói ứng dụng của tôi thành một biểu mẫu có thể triển khai và chạy được.
tôi không thể tìm thấy bất kỳ ví dụ về Dockerfiles với lệnh pack KPM, chỉ tài liệu: https://github.com/aspnet/Home/wiki/Package-Manager
Tôi cũng đã thử tất nhiên để sử dụng ADD hoặc COPY lệnh trong Dockerfile tôi để sao chép nội dung của dự án của tôi vào hệ thống tệp của vùng chứa, nhưng vẫn là lỗi tương tự.
Thank của bạn đã giúp tôi
9 tháng sau đó, tôi cuối cùng đã thử nghiệm phương pháp này và nó hoạt động tuyệt vời. Cảm ơn :-) –
Cảm ơn bạn. Phải mất 2 ngày để tìm ra giải pháp này. – zaidorx
Điều gì sẽ xảy ra nếu bạn có hai dự án trong giải pháp của mình và bạn muốn chúng được xuất bản dưới dạng hai ứng dụng web khác nhau. Bạn có thể làm cho nó hoạt động nếu dockerfile của bạn KHÔNG ở cấp độ giải pháp? Tôi cần chúng ở trong các dự án riêng ... – Reft