我有执行一些 Docker 命令的 bash 脚本:
#!/usr/bin/env bash
echo "Create and start database"
cd ../../database
cp -R ../../../scripts/db db/
docker build -t a_database:1 .
docker run --rm --name a_db -e POSTGRES_PASSWORD=docker -d -p 5432:5432 a_database:1
docker network connect --ip 172.23.0.5 a_network a_db
sleep 15
echo "Initialize database"
docker exec a_db /root/db/dev/init_db.sh
echo "Cleanup"
rm -rf db
在 mac 上一切正常,当我尝试在 windows 机器上启动这个脚本时出现问题。当我运行它时,我收到一个错误:
OCI runtime exec failed: exec failed: container_linux.go:344: starting container process caused "exec: \"C:/Program Files/Git/root/db/dev/init_db.sh\": stat C:/Program Files/Git/root/db/dev/init_db.sh: no such file or directory": unknown
目录和脚本(/root/db/dev/init_db.sh)存在于 docker 容器中。我不知道为什么它会尝试在主机上查找脚本?当我执行命令时:
docker exec a_db /root/db/dev/init_db.sh
直接在命令行(在 Windows 上)执行脚本。知道有什么问题以及为什么要尝试使用 git 吗?