M1芯片Mac mini用Docker安装gitlab-ce卡在database migrations阶段原因求解
M1芯片的Mac可以作为GitLab服务器使用,你遇到的卡死问题由以下原因导致:
故障原因
- 架构兼容性问题:M1系列芯片属于ARM64架构,你执行命令时强制指定了
--platform linux/amd64参数,通过Docker的Rosetta 2转译层运行X86架构的官方gitlab-ce镜像。数据库迁移环节依赖的PostgreSQL、Ruby on Rails组件对转译兼容性较差,运行过程中会出现阻塞、无响应的问题,这也是Intel X86架构Mac可以正常运行、M1设备无法运行的核心原因。 - Volume挂载语法错误:你给出的运行命令中,三个volume挂载参数末尾都多了多余的冒号,会导致挂载目录的权限配置异常,数据库读写目录无操作权限时,迁移任务会无限等待。
- Docker资源分配不足:GitLab运行最低要求4核心CPU、8GB可用内存,Docker for Mac默认分配的资源远低于该要求,数据库迁移属于重资源消耗操作,资源不足时会直接卡住无响应。
解决方案
- 替换ARM架构适配的GitLab镜像:放弃官方X86架构的gitlab-ce镜像,改用社区维护的ARM64适配镜像,无需指定
--platform linux/amd64转译运行。 - 修正挂载命令:删除所有volume参数末尾多余的冒号,正确的挂载格式为
--volume ~/gitlab/config:/etc/gitlab。 - 调整Docker资源配置:打开Docker设置,将CPU核心数调整到4核以上,内存调整到8GB以上,Swap空间调整到4GB以上,保存配置后重启Docker再运行容器。
内容的提问来源于stack exchange,提问作者sakulove
相关产品推荐
相关产品推荐

