You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Docker Action中暴露SurrealDB容器端口?

解决GitHub Actions中SurrealDB容器端口暴露问题

一、修复服务容器的启动配置

服务容器支持通过entrypoint和command字段直接指定SurrealDB的启动参数,不需要额外自定义脚本。你可以这样配置:

test:
  name: Test
  runs-on: ubuntu-latest
  env:
    SURREAL_USER: ${{ secrets.SURREAL_USER }}
    SURREAL_PASS: ${{ secrets.SURREAL_PASS }}
    SURREAL_PORT: ${{ vars.SURREAL_PORT }}
  steps:
    - uses: actions/checkout@v4
      # 其他步骤...

  services:
    db:
      image: surrealdb/surrealdb:latest
      # 直接指定SurrealDB启动命令
      command: ["start", "--user", "${{ secrets.SURREAL_USER }}", "--pass", "${{ secrets.SURREAL_PASS }}", "--port", "8000", "file:///data/db"]
      ports:
        - "${{ vars.SURREAL_PORT }}:8000"
      # 可选:挂载数据卷避免数据丢失
      volumes:
        - db-vol:/data
volumes:
  db-vol:

配置后,后续测试步骤可以通过localhost:${{ vars.SURREAL_PORT }}访问SurrealDB。更简便的是,GitHub Actions会自动给服务容器分配主机名(即服务名db),你也可以直接用db:8000访问,无需映射宿主端口。

二、自定义Action的替代方案

Docker类型的Action运行在隔离容器中,无法直接向runner暴露端口。建议将自定义Action改为Composite Run Steps类型,直接在runner上用Docker命令启动容器,完全控制端口映射:

# action.yml
name: '启动SurrealDB'
inputs:
  surreal-user:
    description: "账号用户名"
    required: false
    default: "root"
  surreal-pass:
    description: "账号密码"
    required: false
    default: "root"
  surreal-port:
    description: "宿主暴露端口"
    required: false
    default: "8000"

runs:
  using: "composite"
  steps:
    - name: 启动SurrealDB容器
      shell: bash
      run: |
        docker run -d \
          --name surrealdb-test \
          -p ${{ inputs.surreal-port }}:8000 \
          surrealdb/surrealdb:latest \
          start --user ${{ inputs.surreal-user }} --pass ${{ inputs.surreal-pass }} --port 8000 file:///data/db
    - name: 等待SurrealDB就绪
      shell: bash
      run: |
        until curl -s http://localhost:${{ inputs.surreal-port }}/health; do
          echo "等待SurrealDB启动..."
          sleep 2
        done

在工作流中调用该Action后,后续测试步骤即可通过localhost:指定端口访问SurrealDB。

内容的提问来源于stack exchange,提问作者Caedan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 06:45:08