我是碼頭工人。我發現我們可以在Dockerfile中使用ENV指令設置環境變量。但是如何在Dockerfile中爲長命令設置bash別名?如何在Dockerfile中設置Docker容器的bash別名?
21
A
回答
38
基本上像你總是這樣,通過將其添加到用戶的.bashrc
:
FROM foo
RUN echo 'alias hi="echo hello"' >> ~/.bashrc
像往常一樣,這隻能在交互shell工作:
docker build -t test .
docker run -it --rm --entrypoint /bin/bash test hi
/bin/bash: hi: No such file or directory
docker run -it --rm test bash
$ hi
hello
對於你應該建立非交互shell一個小腳本,並把它放在你的路徑,即:
RUN echo -e '#!/bin/bash\necho hello' > /usr/bin/hi && \
chmod +x /usr/bin/hi
如果你的別名我們es參數(即。 hi Jim
- >hello Jim
),只需添加"[email protected]"
:
RUN echo -e '#!/bin/bash\necho hello "[email protected]"' > /usr/bin/hi && \
chmod +x /usr/bin/hi
-1
您可以使用入口點,但它不會別名工作,在您的Dockerfile:
ADD dev/entrypoint.sh /opt/entrypoint.sh
ENTRYPOINT ["/opt/entrypoint.sh"]
你entrypoint.sh
#!/bin/bash
set -e
function dev_run()
{
}
export -f dev_run
exec "[email protected]"
(快速複製/粘貼,對不起)
+0
請注意,某些Docker映像可能已經覆蓋默認入口點(例如phusion基礎映像)。 –
2
要創建現有命令的別名,也可以使用ln -s
:
ln -s $(which <existing_command>) /usr/bin/<my_command>
相關問題
- 1. 如何在Docker容器中設置PS1
- 2. Dockerfile多個Docker容器
- 3. Docker Windows容器 - DockerFile設置iis默認文檔
- 4. 如何在Docker for Windows中設置Docker容器時間
- 5. 設置IRB的bash別名?
- 6. 如何在Docker容器中通過Dockerfile覆蓋文件?
- 7. Docker $(pwd)和bash別名
- 8. 在Docker容器中設置主機的主機名
- 9. 如何在bash腳本(Ubuntu 17.04)中正確設置別名?
- 10. 如何在Docker鏡像的新容器中運行bash?
- 11. 如何在Docker容器中設置Java堆大小(Xms/Xmx)?
- 12. 如何在Azure容器服務中設置AutoScaling Docker主機
- 13. 如何在Dockerfile中設置圖像名稱?
- 14. 在容器創建時設置docker鏡像用戶名?
- 15. 如何在bash啓動時自動設置別名?
- 16. 如何運行python腳本並在Dockerfile中爲Docker容器執行CMD
- 17. 如何在SQL Server中設置別名
- 18. 如何在運行docker-compose時設置容器ID?
- 19. 如何在docker容器運行CMD之前在Docker容器中執行bash腳本?
- 20. 如何更改docker的默認容器名稱和主機別名?
- 21. 如何在mySQL中使用bash別名
- 22. 如何根據`docker ps -a`的名字來運行docker容器?
- 23. Dockerfile VOLUME和docker run -v命令之間的Docker區別
- 24. 在postgres docker容器中更改tcp_keepalives設置的正確方法
- 25. 在Docker容器中設置PATH變量的正確方法
- 26. 如何在Docker Swarm的全局服務中設置主機名
- 27. 主機名未在Docker中設置
- 28. 如何在ECS上爲運行UDP服務的容器設置別名?
- 29. Ruby中的別名設置器方法
- 30. 如何在具有多個Docker容器的設置中備份MongoDB?
別名被認爲基本上棄用了* *很長的時間。使用功能。不再需要*使用別名。這些從80年代末開始的方法如何持續這麼久? –