2015-05-27 3 views
2

См. Прилагаемое изображение. В моем ящике CoreOS у Docker bulid есть флаг -f (файл), который позволяет вам указать файл докеров, не названный «Dockerfile», для создания сборки. Когда я пытаюсь вызвать «Docker -f Dockerfile-dev», например, в CircleCI, он терпит неудачу с «установленным флагом, но не определен: -f». В прилагаемом изображении вы можете видеть, что флаг -f неизвестен экземпляру Docker в CircleCI. Есть ли способ обойти это или «Dockerfile» - обязательное имя для докеров, используемых для сборки CircleCI? enter image description hereМожно ли использовать файл Dockerfile без имени «Dockerfile» с CircleCI?

ответ

2

docker build -f является функцией от Докер 1.5 (см PR 9707)

CircleCI еще не интегрированы докер 1.5.

See the FAQ:

Запуск Docker 1.5 в нашей среде требует пользовательских патчей, и мы должны тщательно проверить исправленную версию, прежде чем сделать его доступным в наших контейнерах.
Обратите внимание на our changelog, чтобы получить уведомление, как только Docker 1.5 начнет поставляться с нашими контейнерами сборки по умолчанию.

June 2015: несмотря на то, что в журнале изменений еще не упоминается, Docker 1.6 может поддерживаться сейчас, то есть поддерживается docker build -f.

3

Вот ответ, который я получил от CircleCI:

У нас уже есть сборки Докера 1.5 и 1.6, которые можно запускать на CircleCI, но они еще не в наших контейнерах. Прямо сейчас вы можете начать использовать Docker 1.5 или 1.6, если добавить к вашей circle.yml, например, в зависимости: предварительный раздел:

curl -L -o /usr/bin/docker 'http://s3-external-1.amazonaws.com/circle-downloads/docker-1.5.0-circleci'; chmod 0755 /usr/bin/docker; true 

или

curl -L -o /usr/bin/docker 'http://s3-external-1.amazonaws.com/circle-downloads/docker-1.6.0-circleci'; chmod 0755 /usr/bin/docker; true 

Вы хотите удалить docker из раздела services, если вы сделаете это, когда вы начинаете докер вручную.

Мы поместим 1.5 и 1.6 в наши контейнеры для сборки по умолчанию очень скоро, поэтому этот хак должен стать ненужным в течение следующих нескольких недель.

+0

Хорошая обратная связь, которая повторяет то, что я уже упомянул в своем ответе. +1 – VonC

+0

С приведенным выше обходным путем на моем этапе «dependencies.override» я получаю эту ошибку при последующей команде 'docker run':« FATA [0000] Сообщение http: ///var/run/docker.sock/v1. 16/container/create: dial unix /var/run/docker.sock: нет такого файла или каталога. Вы пытаетесь подключиться к демону с поддержкой TLS без TLS? " –

+0

@ JørnSchou-Rode У меня такая же ошибка, вот что сказал мне Кружок, и я проверил его, и он работает: Не могли бы вы добавить sudo перед командой curl? Это позволит убедиться, что установлена ​​более новая версия Docker (в случае сбоя сборки, связанной с последним этапом установки). Кроме того, после установки Docker вам необходимо запустить демон Docker, поэтому, пожалуйста, добавьте стартовый старт доски sudo после установки новой версии Docker. – alberto56

Смежные вопросы