Goku Gateway 3.1.x Docker Compose 部署指南

用 Docker Compose 一键拉起 Goku Gateway CE 两件套:管理控制台 3.1.4 + 网关节点 3.1.5 + 演示后端,覆盖镜像选型与版本搭配取证、专用网络与固定 IP、compose 全量配置逐项说明、数据持久化、环境变量表、等价 docker run、运维命令与四类排障实录(节点注册 bind 失败、镜像三层版本号、首启密码双重 MD5、外置网络缺失),全链路 curl 实测取证。

Goku GatewayAPI 网关Go2026/10/24

Goku Gateway 3.1.x Docker Compose 部署指南

目标:用 Docker Compose 一键拉起 Goku Gateway(goku_lite 社区版 CE)的完整两件套——Web 管理控制台(console)与网关数据面节点(node),并附带一个用于转发验证的演示后端,最终完成「管理台可登录、节点已注册、策略已发布、curl 经网关转发 200」的全链路验证。全部命令与回显均在 Ubuntu 22.04 x86_64 实机上执行取证,Docker Compose v5.5.1,管理面 console 3.1.4 + 数据面 node 3.1.5(镜像渠道最新组合),查询/实测日期 2026-10-23 ~ 2026-10-24。

一、环境信息

本章列出本次部署实测所用的软硬件环境与最终拓扑,读者在同等环境可直接复现。

  • 操作系统:Ubuntu 22.04(x86_64),内核 5.15+;
  • Docker Compose:Docker Compose version v5.5.1(docker compose version 实测);
  • 管理面(console):eolinker/goku-api-gateway-ce-console:3.1.4,监听 Web/API 端口 7000,节点注册端口 7005,宿主映射 8131→7000;
  • 数据面(node):eolinker/goku-api-gateway-ce-node:3.1.5,网关转发端口 6689,宿主映射 6689→6689;
  • 演示后端(backend):nginx:alpine,仅挂内部网络,不映射宿主端口,作为被代理目标;
  • 专用网络:goku-net(user-defined bridge,实测网段 10.89.61.0/24,网关 10.89.61.1);
  • 固定 IP 规划:console=10.89.61.2,node=10.89.61.3,backend=10.89.61.4;
  • 数据落盘目录:/opt/goku-gateway/console-work(console 数据)、/opt/goku-gateway/node-work(node 数据);
  • 版本搭配:console 3.1.4 + node 3.1.5(版本搭配取证见 2.3 节)。

二、镜像选型说明

2.1 官方镜像清单

Goku Gateway CE 官方以两个独立镜像发行(来源:Docker Hub 官方仓库,查询日期 2026-10-24):

组件镜像角色说明
管理控制台eolinker/goku-api-gateway-ce-consoleWeb 图形化控制台 + 配置管理 + 节点注册服务
网关节点eolinker/goku-api-gateway-ce-node无状态数据面,从 console 拉取配置并转发流量
演示后端(非官方组件)nginx:alpine仅用于验证网关转发链路,生产可替换为任意 HTTP 服务

解读:console 与 node 必须搭配使用——node 无独立配置能力(除 config 文件模式),所有路由、策略、负载均衡配置都由 console 管理;backend 是本文为验证转发链路自加的第三方服务,非 Goku 组件。

2.2 镜像渠道版本现状(查询日期 2026-10-24)

Docker Hub 官方镜像渠道的最新版本为:console 3.1.4(2021-01-08 发布,latest 标签同步指向 3.1.4)、node 3.1.5(2021-01-19 发布)。GitHub 源码 Release 渠道停在 3.1.3(2020-01)。两者不同步的详细溯源见 《Goku Gateway 3.1.x 介绍与选型指南》第七章。按镜像部署时取 Docker Hub 最新即可,本文即采用该组合。

2.3 版本搭配取证(镜像内实查)

为确认「镜像 tag 与运行版本」的真实关系,部署完成后在两个官方镜像内逐项实查:

console 3.1.4 镜像内部目录:

docker exec goku-3.1.4-console ls -la /app/goku-ce/console/

实测回显:

total 20
drwxr-xr-x 1 root root 4096 Jan  8  2021 .
drwxr-xr-x 1 root root 4096 Mar 30  2020 ..
drwxr-xr-x 1 root root 4096 Jan  8  2021 config
lrwxrwxrwx 1 root root   14 Jan  8  2021 console -> console-3.1.4/
drwxr-xr-x 5 root root 4096 Jan  8  2021 console-3.1.4
drwxr-xr-x 3 root root 4096 Oct 24 02:49 work

node 3.1.5 镜像内部目录与版本文件:

docker exec goku-3.1.5-node ls -la /app/goku-ce/node/
docker exec goku-3.1.5-node sh -c 'cat /app/goku-ce/node/node-3.1.5/version; echo'

实测回显:

total 20
drwxr-xr-x 1 root root 4096 Oct 23 21:56 .
drwxr-xr-x 1 root root 4096 Jan 18  2020 ..
lrwxrwxrwx 1 root root   11 Jan 18  2021 node -> node-3.1.5/
drwxr-xr-x 3 root root 4096 Jan 19  2021 node-3.1.5
drwxr-xr-x 3 root root 4096 Oct 23 21:56 work
3.1.3

console 侧汇总接口上报的版本(/monitor/gateway/getSummaryInfo,登录后调用):

{"baseInfo":{"nodeCount":1,"nodeStartCount":0,"nodeStopCount":0,"projectCount":1,"apiCount":1,"strategyCount":2,"pluginCount":5,"clusterCount":1,"version":"3.1.4"},"statusCode":"000000","type":"monitor"}

取证结论:console 3.1.4 镜像内运行目录为 console-3.1.4,与 tag 一致;node 3.1.5 镜像内运行目录为 node-3.1.5、但内部 version 版本文件内容是 3.1.3,注册到 console 后节点列表上报 version: 3.1.4。即 node 镜像存在「tag 3.1.5 / version 文件 3.1.3 / 管理台上报 3.1.4」三层版本号,属该项目历史遗留现象,不影响功能,运维盘点时以「镜像 tag + console 汇总接口」为准。

💡 技术拓展:管理面与数据面分离的网关在版本升级时通常遵循「控制面兼容数据面」原则——先升数据面、后升控制面(或控制面保持兼容窗口),因为配置下发方(console)需识别数据面(node)上报的版本号。Goku CE 节点注册时上报 version 字段,console 按集群维度管理节点列表,因此 console/node 小版本错配(3.1.4/3.1.5)可正常运行;但大版本混用不受官方保证。

三、前置条件

  1. 宿主机已安装 Docker 与 Docker Compose(验证命令见 4.2);
  2. 宿主机可访问外网镜像仓库(拉取 3 个镜像);
  3. 端口 8131(console Web)、6689(node 网关)未被占用;
  4. 规划数据落盘目录 /opt/goku-gateway/(console 数据与 node 数据各一个子目录)。

四、部署步骤

4.1 确认 Docker 环境版本

先确认宿主机 Docker Compose 可用:

docker compose version

实测回显:

Docker Compose version v5.5.1

4.2 创建专用网络

console 与 node 需要通过固定 IP 互相寻址(node 启动参数要写死 console 的地址),因此先创建 user-defined bridge 网络并启用静态 IP:

docker network create -d bridge goku-net --subnet 10.89.61.0/24

实测创建后的网络信息:

docker network inspect goku-net

实测回显(节选):

[
    {
        "Name": "goku-net",
        "Id": "21813096b2f0ee45c773a8dbfa26238d0847e5f10676db471a58b714118add8b",
        "Created": "2026-10-23T21:43:38.535539886+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv4": true,
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.89.61.0/24",
                    "Gateway": "10.89.61.1"
                }
            ]
        }
    }
]

4.3 准备数据落盘目录

mkdir -p /opt/goku-gateway/console-work /opt/goku-gateway/node-work

说明:console 的 SQLite 数据库与运行日志落在 /app/goku-ce/console/work,node 的日志与启动环境文件落在 /app/goku-ce/node/work,两个目录必须挂载到宿主机做持久化,否则重建后管理配置全部丢失。

4.4 编写 docker-compose.yml

在部署目录(如 /opt/goku-gateway/)创建 docker-compose.yml:

name: goku-gateway-3.1.5-stack

networks:
  goku-net:
    external: true

services:
  console:
    image: eolinker/goku-api-gateway-ce-console:3.1.4
    container_name: goku-3.1.4-console
    restart: unless-stopped
    ports:
      - "8131:7000"
    environment:
      - GOKU_ADMIN_PASSWORD=q1w2e3r4
    volumes:
      - /opt/goku-gateway/console-work:/app/goku-ce/console/work
    networks:
      goku-net:
        ipv4_address: 10.89.61.2

  node:
    image: eolinker/goku-api-gateway-ce-node:3.1.5
    container_name: goku-3.1.5-node
    restart: unless-stopped
    ports:
      - "6689:6689"
    environment:
      - GOKU_ADMIN_ADDRESS=10.89.61.2:7005
      - INSTANCE=dbcf5af2f61546367cae44869e1dc21a
    volumes:
      - /opt/goku-gateway/node-work:/app/goku-ce/node/work
    networks:
      goku-net:
        ipv4_address: 10.89.61.3

  backend:
    image: nginx:alpine
    container_name: goku-3.1.5-backend
    restart: unless-stopped
    networks:
      goku-net:
        ipv4_address: 10.89.61.4

逐项说明:

配置项值作用与取值说明
namegoku-gateway-3.1.5-stackCompose 项目名,显式声明,避免默认取目录名
networks.goku-net.externaltrue复用 4.2 手动创建的网络,三个服务共享同一内网
console 端口 8131:7000宿主 8131映射镜像内 Web/API 监听口 7000(listen_port),浏览器经 8131 访问控制台
console GOKU_ADMIN_PASSWORDq1w2e3r4首次启动初始化管理员 admin 的密码(账号默认 admin)
console 挂载卷console-work:/app/goku-ce/console/work持久化 SQLite 库 goku.db 与控制台日志
node 端口 6689:6689宿主 6689网关数据面流量入口
node GOKU_ADMIN_ADDRESS10.89.61.2:7005指向 console 的节点注册端口(admin_bind 0.0.0.0:7005),必须写网络内固定 IP
node INSTANCEdbcf5af2f61546367cae44869e1dc21a节点实例标识,与 console 节点注册的 nodeKey 对应,取 32 位十六进制串
node 挂载卷node-work:/app/goku-ce/node/work持久化网关访问日志、系统日志与启动环境文件
backend无端口映射仅内部网络可达,被网关代理验证用

⚠️ 注意:INSTANCE 建议在 console 侧先「添加节点」生成节点 key 后再填入(见 4.7 第 4 步);先启动 node 只会看到重试日志,console 侧注册成功后配置才会下发。

4.5 启动全套服务

docker compose up -d

实测回显(首次 up,console 已单独启动过故显示 Running):

 Container goku-3.1.4-console Running
 Container goku-3.1.5-node Creating
 Container goku-3.1.5-backend Creating
 Container goku-3.1.5-backend Created
 Container goku-3.1.5-node Created
 Container goku-3.1.5-node Starting
 Container goku-3.1.5-backend Starting
 Container goku-3.1.5-node Started
 Container goku-3.1.5-backend Started

4.6 查看运行状态

docker compose ps

实测回显:

NAME                 IMAGE                                        COMMAND                   CREATED       STATUS       PORTS
goku-3.1.4-console   eolinker/goku-api-gateway-ce-console:3.1.4   "sh -c './gateway-co…"   5 hours ago   Up 4 hours   7005/tcp, 0.0.0.0:8131->7000/tcp, [::]:8131->7000/tcp
goku-3.1.5-backend   nginx:alpine                                 "/docker-entrypoint.…"   5 hours ago   Up 5 hours   80/tcp
goku-3.1.5-node      eolinker/goku-api-gateway-ce-node:3.1.5      "sh -c './run.sh sta…"   5 hours ago   Up 4 hours   0.0.0.0:6689->6689/tcp, [::]:6689->6689/tcp

三服务均 Up,console 暴露 7005(节点注册口,容器内)与 8131→7000(Web 口),node 暴露 6689,backend 仅内网 80。STATUS 列运行 4~5 小时无重启,说明 restart: unless-stopped 生效且进程稳定。

4.7 控制台初始化与节点注册验证

1. 验证控制台 Web 服务健康:

curl -sI http://127.0.0.1:8131/

实测回显:

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 2427
Content-Type: text/html; charset=utf-8
Last-Modified: Fri, 08 Jan 2021 07:20:48 GMT
Date: Fri, 23 Oct 2026 18:50:03 GMT

HTTP 200 且返回 2427 字节的控制台首页(页面标题 GoKu Gateway),控制台服务就绪。

2. 验证管理员账号可登录(账号 admin、密码为 compose 里 GOKU_ADMIN_PASSWORD=q1w2e3r4):

curl -s -X POST -d 'loginCall=admin&loginPassword=q1w2e3r4' -c cookies.txt http://127.0.0.1:8131/guest/login

实测回显:

{"statusCode":"000000","type":"guest","userID":2}

登录成功返回 statusCode=000000 与 userID,cookie 已写入本地 cookies.txt 供后续管理 API 使用。管理 Open API 的完整用法见本专栏命令篇《Goku Gateway 3.1.x 管理面与 CLI 命令详解》。

3. 验证网关数据面端口:

curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:6689/

实测回显:

404

💡 说明:网关端口返回 404 而非连接拒绝,说明 node 进程已在 6689 监听并正常应答——只是尚未下发任何路由规则,故 404。这是数据面健康的正确表现。

4. 在控制台确认节点注册成功:

curl -s -b cookies.txt -X POST -d 'currentPage=1&pageSize=10&cluster=Default' http://127.0.0.1:8131/node/getList

实测回显(节选自实测响应):

{"nodeList":[{"nodeID":1,"nodeName":"node-1","nodeKey":"dbcf5af2f61546367cae44869e1dc21a","listenAddress":"10.89.61.3:6689","adminAddress":"10.89.61.3:7005","cluster":"Default","cluster_title":"Default","version":"3.1.4","nodeStatus":1,"groupName":"未分类","isUpdate":false,"gatewayPath":"","createTime":"2026-10-23 21:54:29","updateTime":"2026-10-23 22:04:43"}],"page":{"itemNum":1,"totalNum":1},"statusCode":"000000","type":"node"}

节点 node-1 已注册到 Default 集群:nodeKey 即 compose 里 INSTANCE 的值,listenAddress 为 node 内网 6689,nodeStatus: 1 表示运行中。console 侧 INSTANCE 与节点 key 的对应关系就是配置下发与热更新的寻址基础。

五、数据持久化说明

5.1 console 侧落盘内容

console 挂载卷 /app/goku-ce/console/work 在宿主机 /opt/goku-gateway/console-work 中的实际内容:

ls -la /opt/goku-gateway/console-work/

实测回显:

total 176
drwxr-xr-x 3 root root   4096 Oct 23 22:33 .
drwxr-xr-x 6 root root   4096 Oct 23 21:56 ..
-rw-r--r-- 1 root root 167936 Oct 23 22:33 goku.db
drwxr-xr-x 2 root root   4096 Oct 23 22:33 logs

goku.db 是 console 的 SQLite 主库(随管理操作从 151552 字节增长到 167936 字节),内含 goku_admin(账号)、goku_gateway_api(API)、goku_gateway_strategy(策略)、goku_balance(负载均衡)、goku_node_info(节点)、goku_gateway_version_config(配置版本)等 26 张表;logs/ 下按小时滚动控制台日志(console 仅记录错误,正常情况下为空文件)。

5.2 node 侧落盘内容

ls -la /opt/goku-gateway/node-work/ /opt/goku-gateway/node-work/logs/

实测回显:

/opt/goku-gateway/node-work/:
total 16
drwxr-xr-x 3 root root 4096 Oct 23 21:56 .
drwxr-xr-x 6 root root 4096 Oct 23 21:56 ..
drwxr-xr-x 2 root root 4096 Oct 24 02:00 logs
-rw-r--r-- 1 root root   36 Oct 23 22:29 node.env

/opt/goku-gateway/node-work/logs/:
total 20
drwxr-xr-x 2 root root 4096 Oct 24 02:00 .
drwxr-xr-x 3 root root 4096 Oct 23 21:56 ..
-rw-r--r-- 1 root root    0 Oct 23 21:56 access-2026-10-23-21.log
-rw-r--r-- 1 root root 3147 Oct 23 22:33 access-2026-10-23-22.log
-rw-r--r-- 1 root root 3242 Oct 23 22:33 node-2026-10-23.log

node.env 记录节点启动环境(实测内容 ENV_PORT=、ENV_ADMIN=10.89.61.2:7005),logs/access-*.log 是网关访问日志(每次转发一行,含策略名、负载均衡名、上游地址、状态码、耗时),logs/node-*.log 是网关系统日志。

5.3 重启后数据保留验证

管理面配置全部落在 goku.db(宿主机目录),node 配置由 console 实时下发、node 本地无状态。docker compose down && docker compose up -d 后再次登录并查询 /project/getList、/strategy/getList,此前创建的 demo-project、demo-strategy 均保留——这正是「console 配置落库持久化 + node 无状态」架构的行为验证。

六、环境变量表

两个官方镜像的环境变量与默认值(经 docker inspect 实测采集):

镜像变量本文取值说明与默认行为
consoleGOKU_ADMIN未设置(默认 admin)初始化管理员的登录名
consoleGOKU_ADMIN_PASSWORDq1w2e3r4初始化管理员密码;仅在账号表为空的首启生效
consoleCONSOLE_DIRconsole-3.1.3(镜像内置默认)镜像构建期遗留变量,实际运行目录为 console-3.1.4(见 2.3 取证),无需改动
nodeGOKU_ADMIN_ADDRESS10.89.61.2:7005console 的节点注册地址(IP:Port),决定 node 向哪里注册并拉取配置
nodeINSTANCEdbcf5af2f61546367cae44869e1dc21a节点实例标识,须与 console 节点 key 一致
nodeNODE_PORT6689(镜像内置默认)网关数据面监听端口
nodeNODE_DIRnode-3.1.3(镜像内置默认)镜像构建期遗留变量,实际运行目录为 node-3.1.5,无需改动

镜像内置启动命令实测(docker inspect 的 Cmd 字段):

console → sh -c ./gateway-console -c config/goku.conf -u ${GOKU_ADMIN} -p ${GOKU_ADMIN_PASSWORD}
node    → sh -c ./run.sh start ${GOKU_ADMIN_ADDRESS} ${INSTANCE}

可见 console 以 gateway-console -c 配置文件 -u 账号 -p 密码 启动,node 以官方 run.sh start <admin地址> <实例ID> 启动——两个镜像都不建议覆写启动命令,改环境变量即可。

七、配置参数说明

7.1 console 的 goku.conf

console 配置文件位于镜像内 /app/goku-ce/console/config/goku.conf,实测内容:

listen_port: 7000
admin_bind: 0.0.0.0:7005
参数默认值说明
listen_port7000Web 控制台 + 管理 Open API 监听端口(本部署映射为宿主 8131)
admin_bind0.0.0.0:7005节点注册/配置分发监听地址,GOKU_ADMIN_ADDRESS 的对端
db_typesqlite3数据库类型,支持 sqlite3 / mysql(未写入时走默认 sqlite3,实测即如此)
db_path./work/goku.dbsqlite3 模式下的库文件路径(相对 console 工作目录)
db_host / db_port / db_user / db_password / db_name—(mysql 模式必填)mysql 模式的连接参数

如需把管理数据外置到 MySQL,在挂载的 goku.conf 中追加 db_type: mysql 与五个连接键后重启 console 即可;config/cluster.yaml 是多机房(cluster)初始化模板,CE 单机房场景无需修改。参数级配置的逐项详解见 《Goku Gateway 3.1.x 配置参数详解》。

7.2 node 的启动参数

node 进程参数(./node --help 实测):

Usage of ./node:
  -admin string
        Please provide a valid host!
  -config string
        Please provide a config file
  -debug

  -instance string
        Please provide a valid instance!

官方 run.sh start <admin地址> <实例ID> 会把两个位置参数转成 --admin 与 --instance;当 work 目录存在 goku-node.json 时改走 --config 文件模式(离线模式)。三种运行方式的完整对照见 《Goku Gateway 3.1.x 管理面与 CLI 命令详解》。

八、配置文件挂载

本部署共挂载两个宿主目录、零个单文件:

宿主路径容器路径用途
/opt/goku-gateway/console-work/app/goku-ce/console/workconsole:SQLite 库 + 日志(必挂,否则配置随容器重建丢失)
/opt/goku-gateway/node-work/app/goku-ce/node/worknode:访问/系统日志 + node.env + (可选)goku-node.json

如需自定义 goku.conf,把整个 config/ 目录也挂进 console(-v /opt/goku-gateway/console-config:/app/goku-ce/console/config),先在宿主放好 goku.conf 再首启,避免镜像内默认文件覆盖。

九、等价 docker run 命令

不使用 Compose 时,以下三条命令与本 compose 文件完全等价(网络与目录准备同 4.2/4.3):

docker run -d --name goku-3.1.4-console --restart unless-stopped \
  --network goku-net --ip 10.89.61.2 \
  -p 8131:7000 \
  -e GOKU_ADMIN_PASSWORD=q1w2e3r4 \
  -v /opt/goku-gateway/console-work:/app/goku-ce/console/work \
  eolinker/goku-api-gateway-ce-console:3.1.4

docker run -d --name goku-3.1.5-backend --restart unless-stopped \
  --network goku-net --ip 10.89.61.4 \
  nginx:alpine

docker run -d --name goku-3.1.5-node --restart unless-stopped \
  --network goku-net --ip 10.89.61.3 \
  -p 6689:6689 \
  -e GOKU_ADMIN_ADDRESS=10.89.61.2:7005 \
  -e INSTANCE=dbcf5af2f61546367cae44869e1dc21a \
  -v /opt/goku-gateway/node-work:/app/goku-ce/node/work \
  eolinker/goku-api-gateway-ce-node:3.1.5

说明:等价形态必须手动建网络、逐个指定 --ip;compose 文件把这组编排固化,推荐生产使用 compose。注意启动顺序无强制要求,node 会自动向 GOKU_ADMIN_ADDRESS 重试注册。

十、常用运维命令

操作命令
查看状态docker compose ps
查看日志(跟随)docker compose logs -f console / docker compose logs -f node
停止全套docker compose stop
启动全套docker compose start
重启单服务docker compose restart node
销毁(保留数据)docker compose down
销毁并删网络docker compose down 后 docker network rm goku-net

docker compose down 不删除挂载目录,/opt/goku-gateway/ 下的 goku.db 与日志保留,重新 up 后配置原样恢复。

十一、常见问题(FAQ)

Q1:node 容器日志反复出现 listen tcp 10.89.61.2:7005: bind: cannot assign requested address?

实测现象(node 系统日志逐行):

2026/10/23 21:56:03 listen tcp 10.89.61.2:7005: bind: cannot assign requested address
2026/10/23 21:56:55 listen tcp 10.89.61.2:7005: bind: cannot assign requested address
2026/10/23 21:58:47 listen tcp 10.89.61.2:7005: bind: cannot assign requested address

定位:该地址是 console 的 GOKU_ADMIN_ADDRESS,node 在 GOKU_ADMIN_ADDRESS 指向的地址与本机网卡不符(或 console 尚未在该地址就绪)时会反复尝试并打此日志。解决:确认 compose 里 console 已绑定固定 IP 10.89.61.2 且 node 的 GOKU_ADMIN_ADDRESS=10.89.61.2:7005 与之一致后重建 node;实测修正后 node 在 console 侧注册成功(节点列表 updateTime 更新),并在控制台发布新版配置(版本列表 v2 备注即 fix adminAddress)后路由正常下发。

Q2:镜像版本号对不上(tag 3.1.5、version 文件 3.1.3、控制台显示 3.1.4)?

这是官方镜像的历史遗留现象,取证见 2.3 节。结论:以镜像 tag(3.1.4/3.1.5)为部署事实,以控制台汇总接口 /monitor/gateway/getSummaryInfo 返回的 version 字段为运行版本口径;GitHub 源码 Release 的 3.1.3 与镜像渠道不同步,不要用 Release 版本号理解镜像部署的实例。

Q3:控制台用 admin + GOKU_ADMIN_PASSWORD 密码登录报 Wrong username or password!(statusCode 100000)?

实测结论:console 首启初始化时对 -p 传入的密码做了两次 MD5 后落库(goku_admin.loginPassword 实测值为 c3f728ad750748e9f91fbbad9f566afa = md5(md5("q1w2e3r4"))),而登录接口 /guest/login 校验只做一次 MD5,极端情况下首启密码无法直接登录。实测处理:在挂载卷的 goku.db 中把 goku_admin.loginPassword 重置为 md5("q1w2e3r4") 即 c62d929e7b7e7b6165923a5dfc60cb56,随后 loginCall=admin&loginPassword=q1w2e3r4 登录成功(回显 {"statusCode":"000000","type":"guest","userID":2})。生产建议:首次部署后立即用控制台「修改密码」功能改掉默认密码。

Q4:docker compose up 时报网络不存在?

networks.goku-net.external: true 要求网络必须先手工创建(4.2 节),否则报 no such network。先执行 docker network create -d bridge goku-net --subnet 10.89.61.0/24 再 up。

Q5:升级怎么做?

停 node → 改 compose 中 node 镜像 tag → up → 控制台确认节点重新注册并核对 /node/getList 的 version 字段;console 升级同理(注意先备份挂载卷里的 goku.db)。由于项目已停止维护,镜像渠道停留在 3.1.4/3.1.5,实际不存在更高升级目标;新建设施应评估官方继任项目 Apinto(见 《Goku Gateway 3.1.x 介绍与选型指南》)。

十二、参考链接

  1. 本专栏认知篇(版本现状、选型对比):《Goku Gateway 3.1.x 介绍与选型指南》
  2. 本专栏配置篇:本专栏《Goku Gateway 3.1.x 配置参数详解》
  3. 本专栏命令篇:本专栏《Goku Gateway 3.1.x 管理面与 CLI 命令详解》
  4. GitHub 仓库:https://github.com/eolinker/goku_lite
  5. Docker Hub 管理台镜像:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-console
  6. Docker Hub 网关节点镜像:https://hub.docker.com/r/eolinker/goku-api-gateway-ce-node
  7. 官方文档站部署教程:https://help.eolinker.com/