通过本地主机连接
当您的本地PagePlug在同一系统上运行时,您可以使用host.docker.internal
ngrok连接到在本地主机上或作为其他 docker 容器运行的数据库、API 和服务
方法一:使用host.docker.internal
您可以使用它host.docker.internal
来连接数据库/API/其他运行在localhost
您还可以访问 docker 文档以阅读host.docker.internal用法的用例和解决方法。
- 对于 Linux 系统,您需要提供一个运行标志
add-host
。
--add-host=host.docker.internal:host-gateway
只有较新版本的 Docker 才支持 host-gateway,它被转换为 Docker 默认桥接网络 IP(或主机的虚拟 IP)。
- 运行以下命令来测试并确保显示主机文件中的 IP 地址。
run —-rm -—add-host=host.docker.internal:host-gateway
- 对于 Linux 上的 Docker Compose,您需要手动将其添加到
docker-compose.yaml
文件中。用于extra hosts
添加条目如下:
extra_hosts:
- "host.docker.internal:host-gateway"
方法二:使用ngrok
PagePlug 允许您
localhost
在ngrok
. 但是必须进行ngrok
相同的设置。
1)设置Ngrok
要设置“ngrok”——前提必须在ngrok上注册(它是免费的!)。按照说明连接您的帐户。
- 下载
ngrok
安装文件并解压 - 添加
auth-token
2)连接本地主机
按照以下步骤连接到 MongoDB 实例:
ngrok
使用命令公开本地 MongoDB 实例
ngrok <PROTOCOL> <LOCAL_PORT>
MongoDB 使用一种tcp
协议来创建连接,并且27017
是默认端口。如果您不使用默认端口,请提供它代替27017
.
ngrok tcp 27017
使用主机地址0.tcp.in.ngrok.io
和端口号17392
将 MongoDB 数据源添加到您的应用程序。
您可以对新添加的 MongoDB 数据源的本地主机实例创建查询LocalMongoDBUsingNgrok
。
3)本地托管API
要在本地托管 API,您可以使用Python FastAPI服务器。您可以使用pip
.
python3 -m pip install fastapi uvicorn
您可以使用以下代码片段来处理 API 请求:
from fastapi import FastAPI
app = FastAPI()
items = [{
"name": "Counter-Strike",
"appid": 10,
"average_playtime": 17612,
"genres": "Action",
"price": 7.2
},
{
"name": "Team Fortress classNameic",
"appid": 20,
"average_playtime": 277,
"genres": "Action",
"price": 3.99
}]
@app.get("/")
async def root():
return items
在代码片段中 - 你有:
- 导入 FastAPI 库并使用该类启动应用
FastAPI
程序 - 定义了一组 Steam 游戏对象
- 声明了可以访问项目(游戏对象)的路径“/”
您可以使用以下命令运行服务器:
uvicorn main:app --reload
命令 uvicorn main:app 指的是:
main
:文件 main.py(Python“模块”)。app
:在 main.py 中使用 app = FastAPI() 行创建的对象。--reload
: 代码更改后重新启动服务器。仅用于开发环境
启动ngrok
并公开本地端口8000
ngrok <PROTOCOL> <LOCAL_PORT>
要访问 API,您必须使用HTTP
协议和端口8000
。
ngrok http 8000