在Google Cloud Platform上创建实例时无法运行启动脚本

时间:2018-01-13 12:09:51

标签: google-compute-engine

我有一个简单的启动脚本,如下所示:

#!/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上使用启动脚本存在一些问题。

1 个答案:

答案 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