Travis CI/CD启动MongoDB实例失败,请求排查问题原因
问题原因及解决方法
原因分析
- 服务名称或预装支持问题:Ubuntu 20.04(focal)环境中,Travis CI的arm64-graviton2镜像对
mongodb服务的自动支持不完善——要么未自动安装对应包,要么服务启动时调用了错误的单元名称,导致出现Unit mongodb.service not found的报错。 - 架构适配差异: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
相关产品推荐
相关产品推荐

