Bạn cũng có thể gắn một thư mục cục bộ vào hình ảnh docker của mình và tạo nguồn script trong của bạn .bashrc
. Đừng quên script phải bao gồm các hàm trừ khi bạn muốn nó thực thi trên mọi shell mới. (Điều này đã lỗi thời, hãy xem thông báo cập nhật.)
Tôi đang sử dụng giải pháp này để có thể cập nhật tập lệnh bên ngoài phiên bản docker. Bằng cách này, tôi không phải chạy lại hình ảnh nếu thay đổi xảy ra, tôi chỉ cần mở một trình bao mới. (Đã thoát khỏi việc mở lại trình bao - xem thông báo cập nhật)
Đây là cách bạn liên kết thư mục hiện tại của mình:
docker run -it -v $PWD:/scripts $my_docker_build /bin/bash
Bây giờ thư mục hiện tại của bạn được liên kết với phiên /scripts
bản docker của bạn.
(Đã lỗi thời) Để lưu các .bashrc
thay đổi của bạn, hãy cam kết hình ảnh hoạt động của bạn bằng lệnh này:
docker commit $container_id $my_docker_build
Cập nhật
Để giải quyết vấn đề để mở một trình bao mới cho mọi thay đổi, bây giờ tôi làm như sau:
Trong dockerfile chính tôi thêm RUN echo "/scripts/bashrc" > /root/.bashrc"
. Bên trong, zshrc
tôi xuất thư mục script vào đường dẫn. Thư mục script hiện chứa nhiều tệp thay vì một tệp. Bây giờ tôi có thể gọi trực tiếp tất cả các tập lệnh mà không cần phải mở trình bao phụ trên mọi thay đổi.
BTW bạn cũng có thể xác định tệp lịch sử bên ngoài vùng chứa của mình. Bằng cách này, bạn không cần phải cam kết thay đổi cơ bản nữa.
WORKDIR
vàCMD
?