我有一个简单的启动脚本,如下所示:
#!/usr/bin/env bash
sudo apt update
sudo apt install -y ruby-full ruby-bundler build-essential
在GCP上创建VM实例,如下所示:
$ gcloud compute instances create test-app --boot-disk-size=10GB --image-family ubuntu-1604-lts --image-project=ubuntu-os-cloud --machine-type=g1-small --zone europe-west1-b --tags test-server --restart-on-failure --metadata-from-file startup-script=startup.sh
我的startup.sh
是可执行的。我设置了这样的权利:
$ chmod +x startup.sh
然而,当我进入我新创建的实例的shell并检查bundler时:
test-app:~$ bundle -v
我收到这些消息:
该节目'捆绑'目前尚未安装......
那么,这有什么问题,我该如何解决? PS。如果我只是从实例shell中运行我的所有命令,那一切都没问题,所以在GCP上使用启动脚本存在一些问题。
答案 0 :(得分:1)
我使用您的用例进行了测试,但捆绑软件包已安装而未进行任何更改。
输出:
bundle -v
Bundler version 1.11.2
您可以检查VM串行控制台日志输出,以验证是否运行了启动脚本。使用以下命令检查VM实例以验证是否已安装软件包:
sudo apt list --installed | grep -i bundle
sudo egrep bundle /var/log/dpkg.log
此外,请检查gem list bundle