bash - 如何创建 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
有什么解决方法吗?
提前致谢!
解决方案
我同意赛勒斯的评论。确保 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
希望这可以帮助。
推荐阅读
- laravel - 如何在 Laravel 的构造方法中调用控制器方法?
- django - 我正在尝试在 django 中上传图像,但它在 /index 'myfile' 处给了我 MultiValueDictKeyError
- mysql - 用于将实体迁移到新表中的 MySQL 查询
- reactjs - React Native - SVG 图像不会跨不同的设备尺寸缩放
- python - 在 Python Pandas 中读取 csv 期间丢失的值不仅为零?
- android - 如何获取android设备本身的NFCID2?
- io - 如何运行 ebpf biolatency 工具?
- javascript - 仅存在于一个 HTML 文件中的元素,阻止我所有其他 HTML 文件运行 JS
- c# - 命名空间“Windows.Graphics”中不存在类型或命名空间名称“Capture”(您是否缺少程序集引用?)
- python - 是否有可以从字典中获取值和键的函数