首页 > 解决方案 > 无法从 Vagrant 访问 Google Cloud SDK for Python 的本地开发服务器

问题描述

我在 Vagrant 框中运行本地开发服务器并尝试在 Chrome(主机)中打开它。但它无法在主机中打开。在客户机中使用curlon localhost:7000 返回 HTML 内容。这是我的流浪文件

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/xenial64"
  config.vm.provision :shell, path: "setup_dev_env.sh"

  config.vm.box_check_update = false

  config.vm.network "forwarded_port", guest: 7080, host: 7080, host_ip: "127.0.0.1"
  config.vm.network "forwarded_port", guest: 7000, host: 7000, host_ip: "127.0.0.1"

  config.vm.synced_folder "SOME_PATH", "/home/vagrant/code"

  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.memory = "4096"
  end
end

运行服务器(客户机)的命令:

python /home/vagrant/code/google-cloud-sdk/platform/google_appengine/dev_appserver.py PATH_TO_app.yaml --port=7080 --admin_port=7000  --datastore_path=~/BLAH.db

标签: google-app-enginevagrantgoogle-app-engine-python

解决方案


运行命令时需要添加以下内容(https://cloud.google.com/appengine/docs/standard/python3/tools/local-devserver-command

--主机=...

用于服务器的主机地址。您可能需要设置此项以便能够从网络上的另一台计算机访问开发服务器。的地址0.0.0.0允许本地主机访问和 IP 或主机名访问。默认为localhost

在您的情况下,在 vagrant 中运行,您需要确保它绑定到0.0.0.0

python /home/vagrant/code/google-cloud-sdk/platform/google_appengine/dev_appserver.py \
PATH_TO_app.yaml \
--host=0.0.0.0 --port=7080 --admin_port=7000  --datastore_path=~/BLAH.db

推荐阅读