docker - 在 gitlab ci before_script 中使用 apt 时找不到 apt

标签 docker gitlab-ci gitlab-ci-runner

我使用 gitlab ci 来构建 docker 镜像,我想安装 python。当我构建时,以下是我的 gitlab-ci.yml:

image: docker:stable
stages:
  - test
  - build

before-script:
  - apt install -y python-dev python pip

test1:
  stage: test
  script:
  ...
    - pytest

build:
  stage: build
  - docker build -t $IMAGE_TAG .
  - docker push $IMAGE_TAG

但我的工作失败了
/bin/sh: eval: line : apt: not found
ERROR: Job failed: exit code 127

我也试过 apt-get install 但结果是一样的。

我如何安装python?

最佳答案

这实际上不是问题,但您可以说它由带有 Alpine 的包管理器提供,您正在使用图像:docker:stable 或任何诸如 tomcat 或 Django 之类的图像,它们在 Alpine Linux 上。尺寸最小。

image: docker:stable
stages:
 - test
 - build

before-script:
 - apk add python python-dev python pip

test1:
stage: test
script:
...
- pytest

build:
stage: build
 - docker build -t $IMAGE_TAG .
 - docker push $IMAGE_TAG

apk 是 Alpine Linux 包管理

关于docker - 在 gitlab ci before_script 中使用 apt 时找不到 apt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54996813/

相关文章:

docker - etcd 集群设置失败

docker - ReadyAPI docker错误,许可证无效:无法获取 float 许可证。原因:无法为 float 许可证服务器创建HTTPS服务

java - 如何在docker入口点之前透明地运行脚本?

docker - 在构建之间传递文件夹-使用Docker的GitLab CI

docker - 如何在 gitlab-runner 容器内运行的 docker 中的 docker 中运行 docker-compose?

amazon-web-services - 使用 AWS EC2 Golang GO 端点在 Docker 部署上获取 JSON 时出现问题

gitlab - 我应该为多个项目使用单个或多个 GitLab CI 运行器吗?

Gitlab-CI 在非零退出时成功

ubuntu - Gitlab-ci - 管道运行失败

post - 如何在 gitlab 中触发特定作业