Bash 如何创建sh文件以更改目录并执行操作

Bash 如何创建sh文件以更改目录并执行操作,bash,docker,ubuntu-18.04,bitbucket-pipelines,Bash,Docker,Ubuntu 18.04,Bitbucket Pipelines,为了创建一个小型CI/CD解决方案,我正在尝试使用管道中运行的sh文件连接到linux虚拟机。我的想法是登录到vm并执行docker compose向下/向上操作 我的虚拟机是ubuntu 18 这是bash文件中的代码 sshpass-p mypassword ssh-tt-o strichhostkeychecking=nouser@vmip cd~/文件夹/子文件夹 码头工人放下 码头工人整理 我试图在本地运行它,但出现以下错误: nodename nor servname provid

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

我的虚拟机是ubuntu 18

这是bash文件中的代码

sshpass-p mypassword ssh-tt-o strichhostkeychecking=nouser@vmip
cd~/文件夹/子文件夹
码头工人放下
码头工人整理
我试图在本地运行它,但出现以下错误:

nodename nor servname provided, or not known
: No such file or directoryfolder/subfolder
No such command: down
有解决办法吗

提前谢谢

我同意你的评论。确保您的虚拟机上安装了docker compose。此外,为了安全起见,我建议您尝试以下方法,并为您自己的理智提供一些反馈

if ! [ -x "$(command -v docker-compose)" ]; then
  echo 'Error: docker-compose is not installed.' >&2
  exit 1
fi
以上内容将确保在继续之前已安装docker compose

此外,我建议你按照这句话做一些事情,以获得反馈,并记住docker compose的-d

docker-compose down
echo

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

docker-compose build
echo

希望这能有所帮助。

瓷砖和第一条斜线之间的间距是否是有意的?(第2行)看起来连第一行都没有连接。看起来脚本中有dos行结尾。通过
dos2unix
实用程序运行您的脚本,并在hex编辑器、
hextump-C
cat-v
下进行检查。该空间不是用于输入错误,我没有意识到,谢谢!关于连接线,它是单独执行的。不确定在bash中执行时它是否工作。还要注意
ssh
之后的命令将在本地系统上运行。我将“运行这些命令”和“远程”部分分开,并执行类似于
ssh的操作user@vmip/重新启动docker应用程序
。卓越@DavidMaze。我不知道命令在本地运行。将尝试您的解决方案-d只是确保您不会将容器日志强制到当前屏幕/终端。您好,我确实安装了docker和docker compose。实际上,虚拟机已经有了一个有效的解决方案。我想要的是创建CI/CD解决方案。嗯,对不起,从你的问题来看,我不太清楚。