Docker и Shell Script в Windows: почему команда sh автоматически меняет мою строку каталога? - PullRequest
0 голосов
/ 12 января 2019

Мой файл "DeployConfig":

webContentSourceFolder='D:\Workspaces\MyContentSource'
webContainerName='docker-apache'
webContainerFolder='/usr/local/apache2/htdocs/mysqldbremote'

Мой файл "Deploy.sh":

source "DeployConfig"

echo "start copy"
echo "webContainerName=$webContainerName"
echo "webContainerFolder=$webContainerFolder"

tempWebContentFile="$webContentSourceFolder\index.php";
tempWebConfigFile="$webContentSourceFolder\config.json";
tempIndexFile="$webContainerFolder/index.php"
tempConfigFile="$webContainerFolder/config.json"

docker exec $webContainerName mkdir -p -m 777 $webContainerFolder;

#docker cp $tempWebContentFile "$webContainerName:$tempIndexFile";
#docker cp $tempWebConfigFile "$webContainerName:$tempConfigFile";

echo "end copy"

Теперь проблема в том, что каждый раз, когда я выполняю его, все эхо-сообщения дают правильный результат, однако, у «docker exec» создается совершенно другая папка. Создано

/usr/local/apache2/C:/CLIProgram/git/usr/local......(etc)

Я совершенно не понимаю, почему он создал папку с именем "C: /" в папке "apache2".

Исполняемый файл "sh" действительно находится в моем установочном файле git, но я не знаю, почему местоположение файла добавлено в мою переменную $webContainerFolder.

То же самое происходит с комментариями docker cp. "$webContainerName:$tempConfigFile" был отображен корректно, но в команде docker cp разделитель файлов - "\" вместо "/", что неверно в среде контейнера docker.

Мне нужна помощь в решении этого вопроса.

Кстати, я запускаю этот файл, используя "sh. \ Deploy.sh" в powershell. Я не знаю, проблема ли это в PowerShell.

...