我是码头工人。我发现我们可以在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. 如何在Docker容器中通过Dockerfile覆盖文件?
- 6. 设置IRB的bash别名?
- 7. Docker $(pwd)和bash别名
- 8. 在Docker容器中设置主机的主机名
- 9. 如何在Docker容器中设置执行器IP?
- 10. 在Docker容器中运行bash脚本
- 11. 如何在bash脚本(Ubuntu 17.04)中正确设置别名?
- 12. 如何在Docker镜像的新容器中运行bash?
- 13. 如何在Azure容器服务中设置AutoScaling Docker主机
- 14. 如何在Windows中为Docker容器设置静态IP地址?
- 15. 如何在Docker容器中设置Java堆大小(Xms/Xmx)?
- 16. 如何为Docker容器中的wildfly设置堆大小?
- 17. 如何在Dockerfile中设置图像名称?
- 18. 在容器创建时设置docker镜像用户名?
- 19. 在Dockerfile中使用docker-compose
- 20. 如何运行python脚本并在Dockerfile中为Docker容器执行CMD
- 21. 如何在bash中为任何文件夹中的命令设置别名?
- 22. 从Dockerfile启动Docker容器中的多个进程
- 23. 如何在bash启动时自动设置别名?
- 24. 如何在运行docker-compose时设置容器ID?
- 25. 如何在SQL Server中设置别名
- 26. 如何在nixos中设置别名?
- 27. 在.env中设置的变量在Docker容器内不存在
- 28. docker-compose未设置环境变量的容器名称
- 29. 如何在docker容器运行CMD之前在Docker容器中执行bash脚本?
- 30. Dockerfile如何添加localhost别名
别名被认为基本上弃用了* *很长的时间。使用功能。不再需要*使用别名。这些从80年代末开始的方法如何持续这么久? –