[ https://github.com/gtriggiano/ngrok-tunnel ] 在容器内运行 ngrok。为了避免安全风险,需要在容器中运行 Ngrok。但是在运行生成 url 的脚本后遇到了问题
$ docker pull gtriggiano/ngrok-tunnel
$ docker run -it -e "TARGET_HOST=localhost" -e "TARGET_PORT=3000" -p 4040 gtriggiano/ngrok-tunnel
Run Code Online (Sandbox Code Playgroud)
我在 localhost:3000 上运行我的 rails 应用程序
是我的问题还是可以通过更改脚本(在 repo 内)来解决?
我现在开始收到以下错误,因此这个答案可能不再适合您:Your ngrok-agent version "2.3.29" is too old. The minimum supported agent version for your account is "2.3.35". Please update to a newer version with ngrok update, by downloading from https://ngrok.com/download, or by updating your SDK version.
我无法让它工作,但切换到https://github.com/shkoliar/docker-ngrok并且它工作得非常好。
就我而言,我将其添加到我的 docker-compose.yml 文件中:
ngrok:
image: shkoliar/ngrok:latest
ports:
- 4551:4551
links:
- web
environment:
- PARAMS=http -region=eu -authtoken=${NGROK_AUTH_TOKEN} localdev.docker:80
networks:
dev_net:
ipv4_address: 10.5.0.10
Run Code Online (Sandbox Code Playgroud)
当我这样做的时候,一切都从其他事情开始docker-compose up -d
然后有一个 Web UI,位于 http://localhost:4551/,您可以查看状态、请求、ngrok URL 等。
Github 页面也有从命令行手动运行它的示例,而不是通过 docker-compose:
命令行示例 下面的示例假设您正在运行名为 dev_web_1 并公开端口 80 的 Web 服务器 docker 容器。
docker run --rm -it --link dev_web_1 shkoliar/ngrok ngrok http dev_web_1:80通过命令行使用,ngrok 会话处于活动状态,直到它不会被 Ctrl+C 组合终止。
不。如果您使用单个数字执行 -p,则容器端口 - 主机端口是随机分配的。在 docker run 中使用 -p, --publish ip:[hostPort]:containerPort 可以指定主机端口和容器端口。
截至目前,4040个容器已暴露。不确定您的服务是否默认侦听它。
获取本地主机端口执行
docker ps
Run Code Online (Sandbox Code Playgroud)
你会看到它没有监听的实际端口。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1aaaeffe789d gtriggiano/ngrok-tunnel "npm start" About a minute ago Up About a minute 0.0.0.0:32768->4040/tcp wizardly_poincare
Run Code Online (Sandbox Code Playgroud)
这里它正在监听本地主机:32768
| 归档时间: |
|
| 查看次数: |
10155 次 |
| 最近记录: |