GitLab CI构建阶段Docker Compose运行失败,提示apt-get命令不存在
问题根因
当前报错是因为build阶段指定的运行镜像为docker/compose:1.25.4,该镜像基于Alpine Linux系统构建,仅支持apk作为包管理器,你调用了Debian/Ubuntu系才有的apt-get命令,因此系统无法识别。
修复方案
直接调整build阶段的before_script部分代码,替换安装Python的命令即可,修改后的build阶段配置如下:
build: image: name: docker/compose:1.25.4 entrypoint: [ "" ] stage: build variables: DOCKER_IMAGE_TAG: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME} before_script: # 替换为Alpine的包管理命令安装Python及依赖组件 - apk add --no-cache python3 py3-pip py3-venv bash # 软链接python命令指向python3,兼容后续调用逻辑 - ln -sf python3 /usr/bin/python - python -m venv env - source env/bin/activate - python -m pip install --upgrade pip - pip install -r app/app-requirements.txt - export IMAGE=$CI_REGISTRY/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME - export WEB_IMAGE=$IMAGE:web script: - chmod +x ./setup_env.sh - bash ./setup_env.sh - docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY - docker pull $IMAGE:web || true - docker-compose -f docker-compose.ci.yml build - docker push $IMAGE:web - docker tag app - docker build -t ${DOCKER_IMAGE_TAG} . after_script: - docker push ${DOCKER_IMAGE_TAG} - docker logout dependencies: - migrations only: refs: - merge_requests variables: - $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "qa"
调整后即可正常识别Python环境,后续如果需要使用Robot Framework,直接将对应的依赖包添加到app/app-requirements.txt中即可正常安装使用。
内容的提问来源于stack exchange,提问作者shorif2000
相关产品推荐
相关产品推荐

