Concourse Quickstart Docker Ошибка Разрешения - PullRequest
0 голосов
/ 28 апреля 2018

Я пытаюсь настроить Concourse CI локально, следуя документации . Все идет хорошо, пока я не попытаюсь запустить пример конвейера hello-world. Работа приводит к этой ошибке ...

runc create: exit status 1: container_linux.go:264: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:56: mounting \\\"/worker-state/3.8.0/assets/bin/init\\\" to rootfs \\\"/worker-state/volumes/live/a8d3b403-19e7-4f16-4a8a-40409a9b017f/volume/rootfs\\\" at \\\"/worker-state/volumes/live/a8d3b403-19e7-4f16-4a8a-40409a9b017f/volume/rootfs/tmp/garden-init\\\" caused \\\"open /worker-state/volumes/live/a8d3b403-19e7-4f16-4a8a-40409a9b017f/volume/rootfs/tmp/garden-init: permission denied\\\"\""

Похоже, я получаю ошибку разрешений, но я дважды проверил, что контейнер работает в привилегированном режиме.

$ docker inspect --format='{{.HostConfig.Privileged}}' concourse_concourse_1
true

Файл создания Docker

version: '3'

services:
  concourse-db:
    image: postgres
    environment:
    - POSTGRES_DB=concourse
    - POSTGRES_PASSWORD=concourse_pass
    - POSTGRES_USER=concourse_user
    - PGDATA=/database

  concourse:
    image: concourse/concourse
    command: quickstart
    privileged: true
    depends_on: [concourse-db]
    ports: ["8080:8080"]
    environment:
    - CONCOURSE_POSTGRES_HOST=concourse-db
    - CONCOURSE_POSTGRES_USER=concourse_user
    - CONCOURSE_POSTGRES_PASSWORD=concourse_pass
    - CONCOURSE_POSTGRES_DATABASE=concourse
    - CONCOURSE_EXTERNAL_URL
    - CONCOURSE_BASIC_AUTH_USERNAME
    - CONCOURSE_BASIC_AUTH_PASSWORD
    - CONCOURSE_NO_REALLY_I_DONT_WANT_ANY_AUTH=true
- CONCOURSE_WORKER_GARDEN_NETWORK

Pipeline

---
jobs:
- name: job-hello-world
  public: true
  plan:
  - task: hello-world
    config:
      platform: linux
      image_resource:
        type: docker-image
        source: {repository: busybox}
      run:
        path: echo
        args: [hello world]

Конкурсная версия

$ curl http://192.168.99.100:8080/api/v1/info
{"version":"3.12.0","worker_version":"2.0"}

Другие версии

$ docker --version
Docker version 18.04.0-ce, build 3d479c0
$ docker-machine --version
docker-machine version 0.14.0, build 89b8332
$ docker-compose --version
docker-compose version 1.21.0, build unknown
$ system_profiler SPSoftwareDataType
Software:

    System Software Overview:

      System Version: macOS 10.13.1 (17B1003)
      Kernel Version: Darwin 17.2.0
      Boot Volume: OSX

1 Ответ

0 голосов
/ 28 апреля 2018

В то время как все на поверхности может выглядеть как современное. Важно отметить, что docker-machine запускает докер внутри виртуальных машин, который может устареть, если вы не обновляете их регулярно, а Concourse требуется ядро ​​3.19 или выше.

Запуск docker info может пролить свет на ситуацию с точки зрения сервера Docker.

То, что сработало для меня, было ...

$ docker-compose down
$ docker-machine upgrade
$ docker-compose up -d
...