如何在Docker环境下为Vapor配置ngrok自定义域名实现本地HTTPS连接
解决Docker+Vapor+ngrok配置问题的步骤
1. 修复ngrok镜像拉取错误
你使用的ngrok:latest镜像不存在,官方ngrok Docker镜像的正确名称是ngrok/ngrok:latest,替换后即可正常拉取。
2. 修正docker-compose.yml配置
需要调整镜像名称,补充完整端口映射,同时确保ngrok与Vapor容器处于同一Docker网络(如果Vapor也通过docker-compose部署)。修改后的配置示例:
version: '3.8' services: # 你的Vapor服务,名称根据实际情况调整 vapor-server: build: . ports: - "8080:8080" networks: - app-network ngrok: image: ngrok/ngrok:latest restart: unless-stopped command: - "start" - "--all" - "--config" - "/etc/ngrok.yml" volumes: - ./ngrok.yml:/etc/ngrok.yml ports: - "4040:4040" networks: - app-network networks: app-network: driver: bridge
3. 修正ngrok.yml配置
你之前把隧道指向了PostgreSQL的端口5433,这是错误的——隧道应该指向Vapor服务器的端口(默认8080)。同时调整host_header确保请求能正确转发到Vapor:
version: "2" authtoken: <NGROK_PERSONAL_TOKEN> tunnels: vapor-server: addr: vapor-server:8080 # 用docker-compose中Vapor服务的名称代替IP,容器间通过服务名通信 proto: http host_header: rewrite # 重写请求头,避免Vapor返回404 domain: api.personal_domain.com
4. 修正Vapor的PostgreSQL配置
你把数据库hostname设为域名api.personal_domain.com是错误的。在Docker环境中,容器间需通过服务名通信:
app.databases.use(.postgres( hostname: "postgres", // 替换为docker-compose中PostgreSQL服务的名称 port: 5432, // PostgreSQL默认端口为5432,若你修改过则保持原端口 username: "user_stackoverflow", password: "password_stackoverflow", database: "personal_domain_db_develop" ), as: .psql)
如果PostgreSQL不在Docker中而是本地运行,hostname应设为host.docker.internal(Docker Desktop环境)或宿主机的实际IP。
5. 命令行方式的正确用法(临时测试)
若用命令行直接运行ngrok,需确保其能访问到本地Vapor服务:
# Docker Desktop(Mac/Windows)用host.docker.internal代替127.0.0.1 docker run -it -e NGROK_AUTHTOKEN=<NGROK_PERSONAL_TOKEN> --network host ngrok/ngrok http host.docker.internal:8080 --domain=api.personal_domain.com # Linux环境用宿主机实际IP(如192.168.1.100) docker run -it -e NGROK_AUTHTOKEN=<NGROK_PERSONAL_TOKEN> ngrok/ngrok http 192.168.1.100:8080 --domain=api.personal_domain.com
注意:ngrok的http子命令不需要加https://前缀。
6. 验证配置
- 启动所有服务:
docker compose up -d - 访问ngrok管理界面:
http://localhost:4040,检查隧道状态是否正常 - 测试域名访问:
curl https://api.personal_domain.com,确认Vapor返回正确响应
内容的提问来源于stack exchange,提问作者Roland Lariotte
相关产品推荐
相关产品推荐

