Cómo escribir un alias Bash parametrizado para el command Docker

Actualmente estoy enfrentando un problema.

Acabo de sacar un contenedor Vim para usarlo en un sistema CoreOs. Intento crear un alias para lanzar el contenedor Vim en lugar del que ya está presente (principalmente porque en este puedo instalar diferentes plugins)

Pero por el momento no funciona y no sé por qué.
El contenedor tiene un assembly de volumen en /home/dev

Mi alias

 alias dockervim="docker run -ti --rm -v \"\$(pwd)\":/home/dev vimpadawan bash -c "vim \"\$1\""" 

Pero cuando escribo dockervim file_name, lanza Vim pero no con el file.

Alguien tiene alguna idea?

Versión 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 

Gracias !

EDIT 1:

Con este command y un script start.sh, puedo hacer lo que quiero:

 docker run --rm -ti -v $(pwd):/root/src -e FILENAME=Dockerfile vimpada 

pero cuando trato de crear un alias, muestra este error:

exec: "Dockerfile": file ejecutable no encontrado en $ PATH FATA [0000] Respuesta de error de daemon: no se puede iniciar el contenedor f579e5cd5bc61ee5da3b5cbeaf2a645c6183914739464cc4bf605202417467d9:
[8] Error del sistema: exec: "Dockerfile": file ejecutable no encontrado en $ PATH

EDICION 2:

Acabo de ver su respuesta helmbert, pero en realidad muestra el mismo error que el mío para su primera function:

[8] Error del sistema: exec: ".bashrc": file ejecutable no encontrado en $ PATH

¡Pero tu segundo funciona PERFECTAMENTE! Muchas gracias 🙂

Los alias de Bash no toman arguments . Sin embargo, puedes intentar declarar una function bash:

 function dockervim() { docker run -ti --rm -v "${PWD}":/home/dev vimpadawan vim "${1}" } 

Entonces simplemente llame con dockervim <filename> .

Tenga en count que esta solución solo funciona con files en el directory de trabajo actual. Debería poder hacerlo a testing de bombas usando la siguiente function:

 function dockervim() { filename=$(readlink -f $1) docker run -ti --rm -v "${filename}":/tmp/file-to-edit vimpadawan vim /tmp/file-to-edit } 
    Intereting Posts