2015-02-25 27 views
29

Tôi đã thử thêm PATH vào các tệp ~/.profile/etc/profile như sau.Cập nhật biến môi trường PATH vĩnh viễn trong vùng chứa Docker

PATH = $PATH:/required/path 

Tuy nhiên, nó không hoạt động. Sau đó, tôi đã thử với việc thêm chương trình dòng, không hoạt động.

export PATH 

Nó không hoạt động ngay cả sau khi khởi động lại vùng chứa và máy chủ lưu trữ cả hai.

+0

Câu hỏi đặt ra sau khi tạo vùng chứa và thực hiện một số sửa đổi. Không phải khi tạo vùng chứa bằng tệp cấu hình Docker. – user859375

Trả lời

4

tôi có câu trả lời cho câu hỏi này trong irc chat. Đưa ra ở đây vì lợi ích của bất cứ ai có thể đi qua này. Nhiều người đã đưa ra câu trả lời sai khi cập nhật ~/.profile nhưng điều đó không hiệu quả. Vì vậy, hãy sử dụng câu trả lời bên dưới.

Cập nhật tệp ~/.bashrc cho người dùng hoặc cập nhật tệp /etc/enviroment toàn cầu thay đổi toàn cầu sẽ áp dụng cho tất cả người dùng.

Trong .bashrc export PATH: export PATH=$PATH:/new/path/bin

Trong môi trường: PATH=$PATH:/new/path/bin

+0

Tôi nghĩ câu trả lời của Jason Gao nên là câu trả lời được chấp nhận khi xem xét câu hỏi liên quan đến Docker. Cập nhật các cấu hình bash là một cách tốt để lưu trữ các biến trên một môi trường không chứa container tiêu chuẩn nhưng nó sạch hơn để bao gồm một bước ENV trong Dockerfile của bạn nếu bạn đang triển khai trong một thùng chứa. – NiallJG

+1

Phương pháp 'trong môi trường' không chính xác theo Tài liệu Ubuntu này (Lưu ý: Mở rộng biến không hoạt động trong/etc/environment.). https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fenvironment – dangeroushobo

52

Nếu bạn muốn bao gồm một /new/path trong Dockerfile, thêm dòng:

ENV PATH "$PATH:/new/path"

trong Dockerfile sẽ hoạt động.

+2

Lưu ý rằng các dấu ngoặc kép là quan trọng. – orodbhen

+0

Tính năng này hoạt động nhưng không phải cho tất cả người dùng. Bất kỳ ý tưởng làm thế nào để làm cho nó có sẵn cho tất cả mọi người? – MrUpsidown

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