Ошибка .gitlab-ci.yml: "apk: команда не найдена" - PullRequest
1 голос
/ 30 мая 2019

У меня есть следующий .gitlab-ci.yml файл:

image: docker

services:
  - docker:dind

stages:
  - test
  - build
  - deploy

test:
  stage: test
  before_script:
    - apk add --update -y python-pip
    - pip install docker-compose
  script:
    - echo "Testing the app"
    - docker-compose run app sh -c "python manage.py test && flake8"

build:
  stage: build
  only:
    - develop
    - production
    - feature/deploy-debug-gitlab
  before_script:
    - apk add --update -y python-pip
    - pip install docker-compose
  script:
    - echo "Building the app"
    - docker-compose build

deploy:
  stage: deploy
  only:
    - master
    - develop
    - feature/deploy
    - feature/deploy-debug-gitlab
  before_script:
    - apk add --update -y python-pip
    - pip install docker-compose
  script:
    - echo "Deploying the app"
    - docker-compose up -d
  environment: production
  when: manual

Когда исполнитель Gitlab выполняет его, я получаю следующую ошибку:

$ apk add --update -y python-pip
bash: line 82: apk: command not found
ERROR: Job failed: exit status 1

Как мне установить apk?Или какое изображение, кроме docker, следует использовать для запуска этого gitlab-ci.yml файла?

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Что ж, оказывается, у меня было два разных бегуна: один помечен как "executor оболочки" (Ubuntu), а другой помечен как "docker executor".

Эта ошибка была выброшена, только когда UbuntuБегун отправлял задание, так как Ubuntu не поставляется с apk.

Я отключил бегун Ubuntu и решил проблему.

1 голос
/ 31 мая 2019

Альтернативой является установка вашей установки на шаге выше теста, как в этой проблеме

image: docker:latest

services:
- docker:dind

before_script:
- apk add --update python-pip
...