Я написал простой bash-скрипт для запуска команды docker-compose
, пытаясь запустить ее из любого места.
path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
docker-compose -f "$path/docker-compose.yml" -f "$path/docker-compose.$env.yml" up $DETACHED $service
Ранее я работал в Windows 10 Home с помощью Docker Toolbox, а в Docker Terminal скрипт работал нормально. Я обновился до Win 10 Pro и Docker для Windows, и когда я запускаю скрипт в Cygwin / Babun, я вместо этого получаю
.FileNotFoundError: [Errno 2] No such file or directory: '/f/www/phpDM/docker-compose.yml'
Проблема в том, что файл находится именно там. Если я запускаю команду, которую скрипт использует с этим путем, она работает. Кажется, я не могу понять, что происходит (или как я могу использовать терминал, как любой другой терминал Docker?).
Полный скрипт:
#!/bin/bash
env="dev"
for opt in $@; do
parsed=0
case $opt in
"-d")
DETACHED="-d"
parsed=1
;;
"-e")
env=$2
valid=0
valid_envs=("dev" "prod")
for valid_env in ${valid_envs[@]}; do
if [[ $env == $valid_env ]]; then
valid=1
break
fi
done
if [ $valid == 0 ]; then
env="dev"
fi
shift
parsed=1
;;
esac
if [[ $parsed == 1 ]]; then
shift
fi
done
if [[ $# == 1 ]]; then
service=$1
fi
path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
docker-compose -f "$path/docker-compose.yml" -f "$path/docker-compose.$env.yml" up $DETACHED $service