当我在gitlab ci before_script中使用apt时找不到apt

时间:2019-03-05 06:40:31

标签: 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 ??

3 个答案:

答案 0 :(得分:0)

您正在使用docker:stable的映像基于Alpine Linux,该映像使用apk作为其程序包管理器。使用apk进行Python安装看起来像这样:apk add python

答案 1 :(得分:0)

这实际上不是问题,但是您可以说它是Alpine的程序包管理器所具有的功能,您正在使用映像:docker:stable或任何类似映像,例如Alpine Linux上的tomcat或Django。尺寸最小。

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软件包管理

答案 2 :(得分:0)

您看到的错误是因为apt在高山docker中不存在。

此行为我解决了问题:

apk update && apk add python