我编写了一个简单的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上,脚本运行良好。我升级到Windows的Win 10 Pro和Docker,并在Cygwin / Babun中运行脚本时,反而得到了
.FileNotFoundError: [Errno 2] No such file or directory: '/f/www/phpDM/docker-compose.yml'
问题是,这正是文件所在的位置。如果我运行脚本与该路径一起使用的命令,则它将起作用。我似乎无法弄清楚发生了什么(或如何像使用Docker Terminal一样使用终端?)。
完整脚本:
#!/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