首页 > 解决方案 > 如何创建 sh 文件以更改目录并执行操作

问题描述

我正在尝试使用在我的管道中运行的 sh 文件连接到 linux vm,以创建一个小型 CI/CD 解决方案。我的想法是登录到 vm 并执行 docker compose down/up 操作。

我的虚拟机是 ubuntu 18

这是 bash 文件中的代码。

sshpass -p mypassword ssh -tt -o StrictHostKeyChecking=no user@vmip
cd ~ /folder/subfolder
docker-compose down
docker-compose up

我试图在本地运行它,我得到这个错误:

nodename nor servname provided, or not known
: No such file or directoryfolder/subfolder
No such command: down

有什么解决方法吗?

提前致谢!

标签: bashdockerubuntu-18.04bitbucket-pipelines

解决方案


我同意赛勒斯的评论。确保 docker-compose 已安装在您的 VM 上。此外,为了安全起见,我建议您尝试以下内容,并为您自己的理智提供一些反馈。

if ! [ -x "$(command -v docker-compose)" ]; then
  echo 'Error: docker-compose is not installed.' >&2
  exit 1
fi

以上将确保您在继续之前安装了 docker-compose。

此外,我建议按照此方式做一些事情来获得反馈并记住 docker-compose up 的 -d。

docker-compose down
echo

docker-compose up -d
echo

如果您需要 docker 容器的新实例,也不要忘记构建它们,否则您只需不断重新加载以前构建的容器,这可能会成为一个问题,具体取决于您在其中放置的内容。

docker-compose build
echo

希望这可以帮助。


推荐阅读