用于在 OSX 上设置 docker 环境的 zsh 函数
zsh function to set docker environment on OSX
如果只有一台机器 运行ning,我正在尝试在 zsh 中为当前机器 运行 命令 docker-machine env <machine>
创建一个函数。我正在尝试通过以下 eval 命令将其设置为 运行:
eval "$(docker-machine env default)"
要设置docker环境变量,运行ning docker-machine env default
会输出如下:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/chris/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
所以,要正确设置环境,需要输入eval "$(docker-machine env default)"
我有以下功能
dmset() {
COUNT=`docker-machine ls | grep "Running" | wc -l`
if [[ "${COUNT// /}" == "1" ]]
then
RUNNING_MACHINE=`docker-machine ls | grep "Running" | awk '{print ;}'`
COMMAND="\"$(docker-machine env $RUNNING_MACHINE)\""
eval $COMMAND
echo Setting docker environment for $RUNNING_MACHINE
else
echo "Unable to set Docker environment"
fi
}
但这不起作用。我收到以下错误消息:
(eval):1: no such file or directory: export DOCKER_TLS_VERIFY="1"\nexport DOCKER_HOST="tcp://192.168.99.100:2376"\nexport DOCKER_CERT_PATH="/Users/chris/.docker/machine/machines/default"\nexport DOCKER_MACHINE_NAME="default"\n# Run this command to configure your shell: \n# eval "$(docker-machine env default)"
如何运行 eval 命令通过单个脚本设置环境?
根据@Etan Reisner 的评论,我将其更改为:
dmset() {
COUNT=`docker-machine ls | grep "Running" | wc -l`
if [[ "${COUNT// /}" == "1" ]]
then
RUNNING_MACHINE=`docker-machine ls | grep "Running" | awk '{print ;}'`
while IFS= read -r line
do
if [[ $line == 'export'* ]]
then
eval $line
fi
done < <(docker-machine env $RUNNING_MACHINE)
echo "Docker environment set for $RUNNING_MACHINE"
else
echo "Unable to set Docker environment"
fi
}
如果只有一台机器 运行ning,我正在尝试在 zsh 中为当前机器 运行 命令 docker-machine env <machine>
创建一个函数。我正在尝试通过以下 eval 命令将其设置为 运行:
eval "$(docker-machine env default)"
要设置docker环境变量,运行ning docker-machine env default
会输出如下:
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/chris/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval "$(docker-machine env default)"
所以,要正确设置环境,需要输入eval "$(docker-machine env default)"
我有以下功能
dmset() {
COUNT=`docker-machine ls | grep "Running" | wc -l`
if [[ "${COUNT// /}" == "1" ]]
then
RUNNING_MACHINE=`docker-machine ls | grep "Running" | awk '{print ;}'`
COMMAND="\"$(docker-machine env $RUNNING_MACHINE)\""
eval $COMMAND
echo Setting docker environment for $RUNNING_MACHINE
else
echo "Unable to set Docker environment"
fi
}
但这不起作用。我收到以下错误消息:
(eval):1: no such file or directory: export DOCKER_TLS_VERIFY="1"\nexport DOCKER_HOST="tcp://192.168.99.100:2376"\nexport DOCKER_CERT_PATH="/Users/chris/.docker/machine/machines/default"\nexport DOCKER_MACHINE_NAME="default"\n# Run this command to configure your shell: \n# eval "$(docker-machine env default)"
如何运行 eval 命令通过单个脚本设置环境?
根据@Etan Reisner 的评论,我将其更改为:
dmset() {
COUNT=`docker-machine ls | grep "Running" | wc -l`
if [[ "${COUNT// /}" == "1" ]]
then
RUNNING_MACHINE=`docker-machine ls | grep "Running" | awk '{print ;}'`
while IFS= read -r line
do
if [[ $line == 'export'* ]]
then
eval $line
fi
done < <(docker-machine env $RUNNING_MACHINE)
echo "Docker environment set for $RUNNING_MACHINE"
else
echo "Unable to set Docker environment"
fi
}