Distribution packages in Docker world

..or why using them is still a good idea

Distribution packages

Software and it’s dependencies maintained by Linux distribution vendor (Debian community, Canonical, RedHat, etc.), delivered by packages (DEB, RPM, ..) usually provided using package repositories (packages are signed so their authenticity is verified on download).

These packages actually forms …

more ...

Jabber anti-spam

Date Tags jabber


There’s no anti-spam mechanism in XMPP protocol so there’s limited options one can do to avoid spam.


Protect registration against automated spam account creation.

  • disable in-band registration completely
    • and create accounts different way
  • or enable captcha during registration
    • which may not be enough

There’s currently …

more ...

Using LXC


Containers are insulated areas inside a system, which have their own namespace for filesystem, network, PID, IPC, CPU and memory allocation and which can be created using the Control Group and Namespace features included in the Linux kernel.

Docker vs. LXC

The idea behind Docker is to reduce a …

more ...

Using libvirt and KVM


Install required packages
apt-get install qemu-kvm libvirt-bin bridge-utils virtinst
Setup /etc/network/interfaces
iface eth0 inet manual

auto br0
iface br0 inet static
    bridge_interfaces eth0
    bridge_stp off
    bridge_maxwait 5
    .. address, netmask, etc.

Try to put br0 interface up or reboot

brctl addbr br0

Deploy instance

Now you have more …

more ...

Launchpad tricks

Upload issues

File *.orig.tar.gz already exists

File python-redis_2.10.1.orig.tar.gz already exists in Primary Archive for Ubuntu, but uploaded version has different contents.

You cannot upload file that already exists in Launchpad but has different content (file checksum). File checksum changes every time you re-create …

more ...

Building OpenContrail


Build dependencies

Dependencies needed to build Opencontrail.

Actual deps in tools/packages/debian/contrail/debian/builddep.trusty

cat tools/packages/debian/contrail/debian/builddep.trusty|sed s,[\ \\\t],,g|tr -d ','|tr '\n' ' '
libboost-dev libboost-chrono-dev libboost-date-time-dev
libboost-filesystem-dev libboost-program-options-dev libboost-python-dev
libboost-regex-dev libboost-system-dev libboost-thread-dev
libcurl4-openssl-dev google-mock libgoogle-perftools-dev liblog4cplus-dev
libtbb-dev libhttp-parser-dev libxml2-dev …
more ...

Using Aptly for repository management

Repository anatomy

Record in sources.list may look like this:

deb http://ppa.launchpad.net/saltstack/salt/ubuntu trusty main

It consists of repository url, distribution and one or more components.

deb <repository> <distribution> <component(s)>


Distribution name consists of Linux distribution version codename (eg. trusty) and our internal …

more ...