2016-05-11 21 views
16

Tôi có một dòng lệnh thực sự dài cho quá trình mặc định do một số đối số. Tôi nghĩ đơn giản nhất là tạo một kịch bản (ví dụ: run.sh) và sau đó gọi tập lệnh này trong số ENTRYPOINT hoặc CMD của bạn. Tôi tự hỏi nếu có một cách để làm cho ENTRYPOINT hoặc CMD đa dòng của bạn (cách chúng tôi viết RUN). Ví dụ:Docker multiline CMD hoặc ENTRYPOINT

ENTRYPOINT["/path/myprocess", 
      "arg1", 
      "arg2" ] 

Tôi đã nghĩ đây là cú pháp hợp lệ vì định dạng là json. Tuy nhiên, docker build ném lỗi

Step 14 : ENTRYPOINT[ 
Unknown instruction: ENTRYPOINT[ 

Có cách nào tôi có thể chia ENTRYPOINT đến nhiều dòng?

+2

Lỗi của tôi. Tôi đã bỏ lỡ một khoảng trống giữa 'ENTRYPOINT' và' ['. Tôi thấy rằng dockerfile hỗ trợ multiline 'ENTRYPOINT' và' CMD' bằng cách chấm dứt dòng với '\'; giống như 'RUN'. – donnie

+0

Thêm câu trả lời và chấp nhận sau đó :) – L0j1k

Trả lời

21

Đó là lỗi đánh máy trong dockerfile. Tôi đã bỏ lỡ một số space giữa ENTRYPOINT[. Dockerfile hỗ trợ nhiều dòng ENTRYPOINTCMD bằng cách chấm dứt dòng với \, giống như RUN. Vì vậy, trong trường hợp của tôi, có thể là

ENTRYPOINT [ "/path/myprocess", \ 
      "arg1",   \ 
      "arg2"    \ 
] 
Các vấn đề liên quan