Page MenuHomePhabricator

fresh-node unable to mount Git dir when path contains spaces
Open, MediumPublic

Description

Fresh breaks when the current directory name contains spaces:

/tmp $ mkdir 'a b' && cd 'a b'
/tmp/a b $ fresh-node
docker: Error response from daemon: Invalid container name (fresh_a b_9178), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed.
See 'docker run --help'.

Spaces in parent directories sometimes work…

/tmp/a b $ mkdir c && cd c
/tmp/a b/c $ fresh-node
# fresh: 22.11.3
# image: docker-registry.wikimedia.org/releng/node16-test-browser:0.1.0
# software: Debian GNU/Linux 11 (bullseye)
#           Node.js v16.19.1 (npm 7.21.0)
#           Chromium 110.0.5481.77
#           Mozilla Firefox 102.8.0esr
#           JSDuck 5.3.4 (Ruby 2.7.4) ruby 2.7.4p191
# mount: /c      ➟ /tmp/a b/c      (read-write)

🌱  Fresh!

I have no name!@0c73a2b5ad96:/c$ 
exit

…but not if there is a .git directory:

/tmp/a b/c $ git init .
Initialized empty Git repository in /tmp/a b/c/.git/
/tmp/a b/c $ fresh-node
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /tmp/ab/c/.git.
See 'docker run --help'.