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

如何在GitLab CI流水线的micromamba镜像中用apt-get安装包

在GitLab CI中使用micromamba镜像安装apt包的解决方案

问题背景

之前使用continuumio/miniconda3:latest镜像时,以下GitLab CI配置可正常安装libgl1-mesa-glx:

image: continuumio/miniconda3:latest

before_script:
  - apt-get update && apt-get install -y libgl1-mesa-glx

但切换到mambaorg/micromamba:1.1.0-bullseye镜像后,执行相同的apt-get命令时出现权限错误:

Reading package lists...
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)

原因分析

micromamba镜像默认以**非root用户(micromamba)**运行,而apt-get操作需要root权限,这是导致报错的核心原因。

解决方案

有两种可行的解决方式,根据实际需求选择:

方式1:在CI中以root用户运行脚本

直接在GitLab CI的job配置中指定user: root,让所有脚本以root身份执行,即可正常使用apt-get:

image: mambaorg/micromamba:1.1.0-bullseye

user: root

before_script:
  - apt-get update && apt-get install -y libgl1-mesa-glx

这种方式无需修改镜像,适合临时或单次的安装需求。

方式2:构建自定义Docker镜像

如果该镜像会被多个CI job或项目复用,建议提前将libgl1-mesa-glx安装到镜像中,避免每次CI运行都重复执行安装步骤:

  1. 编写Dockerfile:
FROM mambaorg/micromamba:1.1.0-bullseye

# 切换到root用户执行安装
USER root
RUN apt-get update && \
    apt-get install -y libgl1-mesa-glx && \
    # 清理apt缓存,减小镜像体积
    rm -rf /var/lib/apt/lists/*

# 切回默认的micromamba用户
USER micromamba
  1. 构建并推送镜像到GitLab容器仓库(或其他镜像仓库),之后在CI配置中使用这个自定义镜像即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 16:20:47