75 lines
3.3 KiB
Docker
75 lines
3.3 KiB
Docker
## gitian-host
|
|
##
|
|
## VERSION 0.1.0
|
|
##
|
|
## gitian host privileged container
|
|
## see also https://github.com/gdm85/tenku/tree/master/docker/gitian-host/README.md
|
|
##
|
|
#
|
|
|
|
## this image must be debootstrapped with build-wheezy.sh
|
|
FROM gdm85/wheezy
|
|
|
|
MAINTAINER Giuseppe Mazzotta "gdm85@users.noreply.github.com"
|
|
|
|
## some core packages
|
|
RUN apt-get update && apt-get install -y aptitude
|
|
RUN aptitude update && aptitude safe-upgrade -y
|
|
RUN aptitude install htop tmux less locales openssh-server -y
|
|
|
|
## these 2 files can be customized
|
|
COPY etc/timezone /etc/
|
|
COPY etc/locale.gen /etc/
|
|
RUN dpkg-reconfigure locales && dpkg-reconfigure tzdata
|
|
|
|
## continue installation of gitian-builder packages
|
|
RUN echo "deb http://http.debian.net/debian wheezy main contrib non-free" > /etc/apt/sources.list.d/non-free.list
|
|
RUN apt-get install -y iptables ca-certificates sudo bridge-utils git python-cheetah qemu-utils parted kpartx ruby apt-cacher-ng lxc parallel patch
|
|
|
|
## disable password logins, reverse DNS lookups & privilege separation (due to chroot issues on latest docker)
|
|
RUN sed -i -e 's/^#PasswordAuthentication yes/PasswordAuthentication no/' -e 's/^UsePrivilegeSeparation.*$/UsePrivilegeSeparation no/' /etc/ssh/sshd_config && echo 'UseDNS no' >> /etc/ssh/sshd_config
|
|
|
|
EXPOSE 22
|
|
|
|
# this version of Debian needs to run as root, so make sure
|
|
# that the build script can exectute it without providing a password
|
|
RUN echo "%sudo ALL=NOPASSWD: /usr/bin/lxc-start" > /etc/sudoers.d/gitian-lxc
|
|
RUN echo 'debian ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/debian-sudo
|
|
|
|
RUN useradd -m -s /bin/bash debian && adduser debian sudo && mkdir /home/debian/.ssh
|
|
|
|
## provide authorized keys to allow connections inside host
|
|
## NOTE: this is placed in debian user directory by setup.sh script
|
|
## reason is that there is a Docker glitch with file permissions when adding this
|
|
COPY authorized_keys /root/
|
|
|
|
WORKDIR /home/debian
|
|
|
|
## download in clear HTTP & check md5 right afterwards
|
|
RUN wget http://archive.ubuntu.com/ubuntu/pool/universe/v/vm-builder/vm-builder_0.12.4+bzr489.orig.tar.gz && echo "ec12e0070a007989561bfee5862c89a32c301992dd2771c4d5078ef1b3014f03 vm-builder_0.12.4+bzr489.orig.tar.gz" | sha256sum -c
|
|
RUN tar -zxvf vm-builder_0.12.4+bzr489.orig.tar.gz && cd vm-builder-0.12.4+bzr489 && python setup.py install
|
|
|
|
## these must always be loaded when you login as 'debian' user
|
|
COPY bash_profile /home/debian/.bash_profile
|
|
|
|
## script used to build base VMs
|
|
COPY bin/build-base-vms.sh /home/debian/
|
|
|
|
RUN git clone https://github.com/devrandom/gitian-builder.git && cd gitian-builder && git checkout 2bcc06e6b75b3f7a0167cde7237331757dd559c6
|
|
|
|
COPY gitian.patch /home/debian/
|
|
|
|
## patch to allow paralle creation of VMs
|
|
RUN cd gitian-builder && patch -p1 < ../gitian.patch && rm ../gitian.patch
|
|
RUN chown -R debian.debian .bash_profile . && chown -R apt-cacher-ng.apt-cacher-ng /var/cache/apt-cacher-ng/
|
|
|
|
## suggested: run this image with mounted volumes for pre-downloaded inputs and apt-cacher-ng cache
|
|
## -v inputs:/home/debian/gitian-builder/inputs -v apt-cacher-ng:/var/cache/apt-cacher-ng
|
|
##NOTE: if you do use them, then not forget to set proper user rights for these mounted volumes
|
|
|
|
## all necessary setup instructions (SSH, LXC)
|
|
COPY bin/setup.sh /usr/local/bin/setup.sh
|
|
|
|
## on run failure, check logs to see if setup failed. on success connect via SSH
|
|
CMD /usr/local/bin/setup.sh && /etc/init.d/apt-cacher-ng start && /usr/sbin/sshd -D -e
|