Ho trovato alcune stranezze interessanti quando ho provato a montare un'immagine finestra mobile su Windows.
Ho creato uno .shscript che esegue un montaggio della cartella del progetto per eseguire la nostra immagine dell'ambiente di sviluppo. Voglio uno script che ogni sviluppatore possa eseguire, indipendentemente dalla propria macchina. Tutto ciò che fa è eseguire la finestra mobile con la cartella del progetto corrente.
#!/usr/bin/env bash
docker run -it --rm -v D:\my\project\folder:/wkDir $IMAGE_TAG yarn dev
Funziona bene. Ora il piano è chiamare questo script da npm, quindi mi piacerebbe che funzionasse in relazione alla cartella corrente. Proviamo un'altra versione.
docker run -it --rm -v $PWD:/wkDir $IMAGE_TAG yarn dev
Non riesce con:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from
daemon: Mount denied:
The source path "D:/my/project/folder;C"
doesn't exist and is not known to Docker.
Wat. Cosa ;Ce da dove viene?
Quindi faccio quello echo $PWDche mi dà /d/my/project/folder.
Interessante, quindi si $PWDrisolve nel percorso corretto nel formato del percorso di Linux, e sembra che docker stia cercando di tradurre da quello al percorso di Windows corretto, tranne che c'è questo ;Cche appare dal nulla. E \sono /...
Cosa sta succedendo esattamente qui?
Ottengo lo stesso risultato nel terminale git bash e powershell di VSCode.
Aggiornamento: ho notato che eseguendo il .shterminale powershell di VSCode, si apre una cmd.exefinestra della console separata che sembra eseguire lo script in git bash. Quindi questo potrebbe essere un problema di git bash.
"/${PWD}"