2016-11-28 25 views
6

Tôi đang cố gắng tự động tạo một hình ảnh Docker phát triển bằng cách sử dụng lệnh docker build với thích hợp Dockerfile. Một trong những tập lệnh mà tôi cần chạy trong lệnh RUN muốn người dùng nhấp qua và đọc thỏa thuận cấp phép của họ. Do đó, có hai câu hỏi:Lệnh tương tác trong Dockerfile

  1. Đầu ra của tất cả các lệnh RUN ở đâu là Dockerfile?
  2. Giải pháp nào có thể tương tác với lệnh đã nêu ở trên? Ngay bây giờ lệnh docker build chỉ bị mắc kẹt yêu cầu người dùng nhập vào trong một vòng lặp vô hạn.

Trả lời

4

Đầu ra của RUN lệnh được hiển thị trong thiết bị đầu cuối của bạn trong khi tạo. Quá trình xây dựng Docker hoàn toàn không tương tác, vì vậy bạn phải tìm cách tự động chấp nhận các điều khoản (hầu như mọi phần mềm cho phép điều này, nghĩ rằng apt-get install -y...) hoặc sử dụng một số trình thủ thuật để thu nhận lại quá trình hoặc bất kỳ điều gì (Expect có thể?).

+0

Có, tôi sử dụng '-y' cho loại ứng dụng' apt-get'. Nhưng điều này là một số điều thương mại. – ilya1725

+3

Có, những thứ thương mại thường thực sự shitty;) Nhưng tôi sẽ ngạc nhiên nếu họ không có một chế độ không tương tác :) Nếu không thì nhìn vào mong đợi. – johnharris85

-1

Bạn cũng có thể làm điều đó trong một vài bước, bắt đầu với một Dockerfile với hướng dẫn cho đến trước phần tương tác. Sau đó

docker build -t image1 .

Bây giờ chỉ cần

docker run -it --name image2 image1 /bin/bash

bạn có một lớp vỏ bên trong, bạn có thể làm các lệnh tương tác của bạn, sau đó làm một cái gì đó giống như

docker commit image2 myuser/myimage:2.1

Các doc cho docker commit

https://docs.docker.com/engine/reference/commandline/commit/

bạn có thể cần phải xác định một CMD mới hoặc EntryPoint, như đã nêu trong doc

Commit một container với CMD mới và tiếp xúc với hướng dẫn

Ví dụ một số hình ảnh Docker sử dụng rượu vang làm điều đó trong một vài bước, cài đặt rượu, sau đó khởi chạy và định cấu hình phần mềm được khởi chạy trong rượu, sau đó docker commit

+2

"Tôi đang cố gắng để _automate_ một sáng tạo ..." :) – johnharris85

+0

như đã nói johnharris85, sử dụng kỳ vọng – user2915097

Các vấn đề liên quan