Я создаю пакет 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
чего я не хочу.