Назад | Перейти на главную страницу

Проблемы зависимости dpkg при распаковке пакета для Docker

Я создаю пакет debian atlantis-builder.deb со структурой папок как:

- deb
     - DEBIAN
            - control
            - postinst
            - postrm
     - usr 
         - bin
             - sbt

Контрольный файл имеет следующее содержимое:

Package: __PACKAGE__
Version: __VERSION__
Section: base
Priority: Optional
Architecture: amd64
Depends: lxc-docker (>= 0.9.0), git, openjdk-7-jdk
Maintainer: abc
Description: Best. Builder. Ever.

В postinst и postrm содержит шаги для загрузки sbt и шаги удаления его jar соответственно.

В Makefile содержание:

DEB_STAGING := $(PROJECT_ROOT)/staging
PKG_INSTALL_DIR := $(DEB_STAGING)/opt/atlantis
PKG_BIN_DIR := $(PKG_INSTALL_DIR)/builder/bin
....
....
deb-builder: clean-builder build-builder
    @mkdir -p $(DEB_STAGING)/DEBIAN
    @mkdir -p $(PKG_BIN_DIR)

    @cp -a $(PROJECT_ROOT)/deb/DEBIAN/control $(DEB_STAGING)/DEBIAN/control
    @cp atlantis-builder $(PKG_BIN_DIR)

    @sed -ri "s/__VERSION__/$(VERSION)/" $(DEB_STAGING)/DEBIAN/control
    @sed -ri "s/__PACKAGE__/atlantis-builder/" $(DEB_STAGING)/DEBIAN/control
    @dpkg -b $(DEB_STAGING) .

Я создаю образ докера с содержимым Dockerfile как:

# Set up docker-in-docker
RUN apt-get update -qq
RUN apt-get install -qqy --force-yes lxc-docker-1.1.2

# Install java before addiing files for better caching
RUN echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
RUN apt-get install oracle-java7-installer -y

ADD atlantis-builder.deb /tmp/atlantis-builder.deb     
RUN dpkg -i /tmp/atlantis-builder.deb || true          # error here

Я получаю следующую ошибку на этапе RUN dpkg -i /tmp/atlantis-builder.deb:

Selecting previously unselected package atlantis-builder.
(Reading database ... 17906 files and directories currently installed.)
Preparing to unpack /tmp/atlantis-builder.deb ...
Unpacking atlantis-builder (0.1.0) ...
dpkg: dependency problems prevent configuration of atlantis-builder:
 atlantis-builder depends on lxc-docker (>= 0.9.0); however:
  Package lxc-docker is not installed.

dpkg: error processing package atlantis-builder (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 atlantis-builder

Может ли кто-нибудь помочь мне, почему я получаю ошибку как lxc-docker не установлен? Однако я устанавливаю lxc-docker в Dockerfile шаг RUN apt-get install -qqy --force-yes lxc-docker-1.1.2.

Кроме того, когда я не указываю версию докера, т.е. lxc-docker только вместо lxc-docker-1.1.2, не выдает ошибок, но устанавливает последнюю версию Docker чего я не хочу.