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

Travis CI/CD启动MongoDB实例失败,请求排查问题原因

问题原因及解决方法

原因分析

  1. 服务名称或预装支持问题:Ubuntu 20.04(focal)环境中,Travis CI的arm64-graviton2镜像对mongodb服务的自动支持不完善——要么未自动安装对应包,要么服务启动时调用了错误的单元名称,导致出现Unit mongodb.service not found的报错。
  2. 架构适配差异:Travis的arm64架构镜像(graviton2)属于边缘测试组,部分常规服务的自动配置逻辑可能未同步适配,无法通过services: mongodb自动完成MongoDB的安装与启动。

解决方法

方法一:手动安装并启动MongoDB

修改.travis.yml,移除原有的services: mongodb配置,在before_script阶段添加手动安装和启动步骤:

os: linux
dist: focal
group: edge
arch: arm64-graviton2
language: node_js
node_js:
  - "14"
before_install: echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" >> ./.npmrc
before_script:
  - sudo apt-get update
  - sudo apt-get install -y mongodb-server
  - sudo systemctl start mongodb
env:
  - MONGO_HOSTS=localhost:27017
script:
  - npm run-script lint
  - npm test
before_deploy: |
  pip install --user awscli
  curl -H "Authorization: token $GITHUB_ACCESS_TOKEN" -H "Accept: application/vnd.github.v3.raw" -O -L "https://mygihub/master/src/assume-role.sh"
deploy:
  edge: true
  provider: script
  script: bash scripts/deploy.sh
  on:
    branch:
      - master
      - uat
      - develop

方法二:直接启动mongod进程(规避systemctl问题)

如果systemctl启动仍有异常,可直接启动mongod进程:

before_script:
  - sudo apt-get update
  - sudo apt-get install -y mongodb-server
  - mongod --fork --logpath /var/log/mongodb.log --dbpath /tmp/mongodb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:15:39