2017-04-14 21 views
16

Khi bạn tạo một dự án trong Visual Studio 2017 với sự hỗ trợ Docker, các Dockerfile có dòng sau:Dockerfile COPY {nguồn -...}

COPY ${source:-obj/Docker/publish} . 

có nghĩa là gì? Macro nguồn trỏ tới đâu? Ý nghĩa của dấu gạch ngang là gì?

Trả lời

10

Điều đó được gọi là thay thế biến.

Trong tiếng Anh, nó dịch thế này:
"Hey Docker, khi bạn xây dựng này, COPY đường dẫn mà bạn tìm thấy trong $source biến trong vào thư mục hiện trong hình ảnh (.) Nếu $source rỗng hoặc. vắng mặt, chỉ cần sử dụng đường dẫn mặc định obj/Docker/publish "

$source là biến môi trường được xác định trước khi thực hiện docker build.

Một số tài liệu tham khảo:

+2

Khi tôi cố gắng xây dựng từ dòng lệnh tôi chạy vào vấn đề này: 'lstat obj/Docker/xuất bản: không có tệp hoặc thư mục đó'. Tôi đã sao chép lệnh từ cửa sổ xây dựng VS để lệnh chính nó phải chính xác. – Deqing

+0

Nó không hoạt động từ dòng lệnh vì biến 'source' được truyền bởi Visual Studio tại thời gian xây dựng. – Hasan