GitHub Action流水线配置MongoDB遇卷名格式错误求助
解决GitHub Action中MongoDB服务卷路径错误的问题
错误原因
Docker在处理GitHub Action服务的卷配置时,会把相对路径./mongo-init.js识别为卷名称而非主机目录,而卷名称不允许包含./这类字符,因此触发了无效字符报错。
解决方案
用GitHub Action预定义的GITHUB_WORKSPACE环境变量替换相对路径,该变量指向流水线中仓库克隆后的根目录,能提供正确的绝对路径。
修改后的MongoDB服务配置如下:
services: mongo: image: mongo:3.4.23 env: MONGO_INITDB_ROOT_USERNAME: admin MONGO_INITDB_ROOT_PASSWORD: admin MONGO_INITDB_DATABASE: admin options: >- --health-cmd mongo --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 27017:27017 volumes: - ${{ github.workspace }}/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
说明
${{ github.workspace }}会被GitHub Action自动替换为当前流水线的工作目录绝对路径,确保Docker能正确识别这是主机上的文件路径而非自定义卷名称,从而完成脚本文件挂载,实现MongoDB的初始化逻辑。
内容的提问来源于stack exchange,提问作者Nikhil Rai
相关产品推荐
相关产品推荐

