我目前正面临一个问题。
我只是拉了一个Vim容器在CoreOs系统上使用它。 我尝试创建一个别名来启动Vim容器而不是已经存在的容器(主要是因为在这个上我可以安装不同的插件)
但目前它不起作用,我不知道为什么
容器在/home/dev
我的别名:
alias dockervim="docker run -ti --rm -v \"\$(pwd)\":/home/dev vimpadawan bash -c "vim \"\$1\"""
但是当我写dockervim file_name时,它会启动Vim但不启动文件。
有人有什么想法吗?
Docker版本
Client version: 1.6.2
Client API version: 1.18
Go version (client): go1.4.2
Git commit (client): 7c8fca2-dirty
OS/Arch (client): linux/amd64 Server version: 1.6.2 Server
API version: 1.18
Go version (server): go1.4.2
Git commit (server): 7c8fca2-dirty
OS/Arch (server): linux/amd64
谢谢!
编辑1:
使用此命令和start.sh脚本,我可以执行我想要的操作:
docker run --rm -ti -v $(pwd):/root/src -e FILENAME=Dockerfile vimpada
但是当我尝试创建它的别名时,它会显示以下错误:
exec:“Dockerfile”:$ PATH FATA中找不到可执行文件[0000] 来自守护程序的错误响应:无法启动容器 f579e5cd5bc61ee5da3b5cbeaf2a645c6183914739464cc4bf605202417467d9:
[8] 系统错误:exec:“Dockerfile”:$ PATH中找不到可执行文件
编辑2:
刚刚看到你的答案helmbert,但它实际上显示了与我的第一个函数相同的错误:
[8]系统错误:exec:“。bashrc”:在$ PATH中找不到可执行文件
但你的第二个完美运作! 非常感谢:)
答案 0 :(得分:3)
Bash aliases do not take arguments。但是你可以尝试声明一个bash函数:
function dockervim() {
docker run -ti --rm -v "${PWD}":/home/dev vimpadawan vim "${1}"
}
然后只需拨打dockervim <filename>
。
请注意,此解决方案仅适用于当前工作目录中的文件。您应该能够使用以下功能使其防弹:
function dockervim() {
filename=$(readlink -f $1)
docker run -ti --rm -v "${filename}":/tmp/file-to-edit vimpadawan vim /tmp/file-to-edit
}