2015-02-25 18 views
29

Próbowałem dodać do PATH w plikach ~/.profile i /etc/profile w następujący sposób.Trwałe aktualizowanie zmiennej środowiskowej PATH w kontenerze Docker

PATH = $PATH:/required/path 

Jednak to nie działa. Potem próbowałem z dodaniem pokazu linii, który też nie działał.

export PATH 

Nie działa, nawet po ponownym uruchomieniu kontenera i hosta.

+0

Pytanie dotyczyło utworzenia pojemnika i wprowadzenia pewnych modyfikacji. Nie podczas tworzenia kontenera za pomocą pliku konfiguracyjnego Docker. – user859375

Odpowiedz

4

Dostałem odpowiedź na to pytanie w IRC. Podane tutaj dla dobra każdego, kto może się z tym zetknąć. Wiele osób podało błędne odpowiedzi jako aktualizację ~/.profile, ale to nie zadziałało. Więc użyj odpowiedzi poniżej.

Zaktualizuj plik dla użytkownika lub zaktualizuj plik /etc/enviroment globalną dla globalnej zmiany, która będzie obowiązywać wszystkich użytkowników.

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

W środowisku: PATH=$PATH:/new/path/bin

+0

Myślę, że odpowiedź Jasona Gao powinna być przyjęta, biorąc pod uwagę, że pytanie dotyczy Dockera. Aktualizacja profili bash jest dobrym sposobem na przechowywanie zmiennych w standardowym środowisku nieskondensowanym, ale jego czystsze jest włączenie kroku ENV do pliku Dockerfile, jeśli wdrażasz go w kontenerze. – NiallJG

+1

Metoda "w środowisku" jest niepoprawna zgodnie z tym dokumentem Ubuntu (Uwaga: rozszerzenie zmiennych nie działa w/etc/environment.). https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fenvironment – dangeroushobo

52

Jeśli chcesz zawierać /new/path w Dockerfile, dodając linię:

ENV PATH "$PATH:/new/path"

w Dockerfile powinien działać.

+2

Pamiętaj, że cytaty są ważne. – orodbhen

+0

Działa to, ale nie dla wszystkich użytkowników. Każdy pomysł, jak udostępnić go wszystkim? – MrUpsidown