Дрон (Docker-Compose в докере?)

я хотел бы сделать

docker-compose up -d

Похоже, что plugins/docker может делать то, что я хочу, но не получится, если я не укажу вещи, связанные с публикацией. Я хочу использовать его без публикации.

Другой альтернативой могут быть услуги, но я всегда пытался

код от docs.drone.io/docker_dind

kind: pipeline
name: default

steps:
- name: test
  image: docker:dind
  volumes:
  - name: dockersock
    path: /var/run
  commands:
  - sleep 5 # give docker enough time to start
  - docker ps -a
  - docker-compose -v # new

services:
- name: docker
  image: docker:dind
  privileged: true
  volumes:
  - name: dockersock
    path: /var/run

volumes:
- name: dockersock
  temp: {}

Ошибка:

/usr/drone/bin/init: line 23: docker-compose: not found
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
8
0
5 800
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В контейнере docker:dind, похоже, не установлена ​​«docker-compose». Вы можете попробовать использовать контейнер docker/compose:1.23.2. Вам необходимо смонтировать файл сокета докера, если вы собираетесь использовать ресурсы докера хоста (например, образы, сети). В противном случае вам нужно смонтировать каталог с файлом docker-compose в каталог /code.

ссылка на образ docker/compose: https://hub.docker.com/r/docker/compose/

См. код ниже для справки:

kind: pipeline
name: default

steps:
- name: test
  image: compose:1.23.2
  volumes:
  - name: docker_sock
    path: /var/run/docker.sock
  commands:
  - up -f /drone/src/docker-compose.yaml
volumes:
  - name: docker_sock
    host:
      path: /var/run/docker.sock

0 в моем случае это говорит: Ошибка MountVolume.SetUp для тома «h6wwnv9s7zdmpdrh2ken9vv1qmj2vzdv»: проверка типа hostPath не удалась: /var/run/docker.sock не является каталогом

Tobias 22.03.2019 10:30
volumes: - name: docker_sock host: path: /var/run/docker.sock steps: - name: test image: compose:1.23.2 volumes: - name: docker_sock path: /var/run/docker.sock commands:
Tobias 22.03.2019 19:45

@custer есть идеи?

Tobias 28.03.2019 07:00

Когда я пробую принятое решение, я получаю сообщение об ошибке: «Недопустимый или отсутствующий раздел конвейера». Есть идеи?

MrfksIV 30.04.2019 15:19

Пропустите свой YAML через линтер. Много раз посторонняя новая строка или пробел могут нанести ущерб.

Frank Yucheng Gu 30.04.2019 17:06

вы можете использовать этот yml для создания докера запуска дрона:

- name: publish
  image: docker/compose:1.25.0-rc2-alpine
  commands:
    - docker-compose -f <docker compose filename>.yml up -d
  volumes:
    - name: dockersock
      path: /var/run/docker.sock
  depends_on:
    - build

Другие вопросы по теме

Встраивание дрона 8.5 в контейнер завершается ошибкой из-за «нет такого файла или каталога»
Как отправить журнал сборки с уведомлением по электронной почте для сборки дрона
AssertEquals(String, String) не работает в сборке дрона
Преобразование вектора из относительной системы координат в абсолютную
Не удалось прочитать файл ресурсов после развертывания в Kubernetes
Каковы допустимые значения секретов plugin/gcr для Drone.io 0.8.5?
Расчет крайних значений поля зрения камеры с учетом направления и угла
Невозможно пометить изображения в сборке докеров для дрона: ошибка синтаксического анализа: ": latest" не является допустимым репозиторием / тег: недопустимый формат ссылки
«Ошибка OSError: [Errno 99] Невозможно назначить запрошенный адрес» для связи между платой Jetson TX2 и хостом ПК
Как заставить плагин Drone Docker аутентифицироваться в собственном реестре, имеющем самоподписанный сертификат TLS