Skip to content

Instantly share code, notes, and snippets.

@trinitronx
Last active October 11, 2017 13:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save trinitronx/a52ec4c85d88ecb03d5a6baac6e829af to your computer and use it in GitHub Desktop.
Save trinitronx/a52ec4c85d88ecb03d5a6baac6e829af to your computer and use it in GitHub Desktop.
test-kitchen SystemD + DBus Dockerfile
FROM debian:8.1
RUN dpkg-divert --local --rename --add /sbin/initctl
RUN ln -sf /bin/true /sbin/initctl
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update
RUN apt-get install -y sudo openssh-server curl lsb-release
# test-kitchen user setup
# password: kitchen
RUN if ! getent passwd kitchen; then useradd -d /home/kitchen -m -s /bin/bash kitchen; fi
RUN echo kitchen:kitchen | chpasswd
RUN echo 'kitchen ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
RUN mkdir -p /etc/sudoers.d
RUN echo 'kitchen ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/kitchen
RUN chmod 0440 /etc/sudoers.d/kitchen
RUN mkdir -p /home/kitchen/.ssh
RUN chown -R kitchen /home/kitchen/.ssh
RUN chmod 0700 /home/kitchen/.ssh
RUN touch /home/kitchen/.ssh/authorized_keys
RUN chown kitchen /home/kitchen/.ssh/authorized_keys
RUN chmod 0600 /home/kitchen/.ssh/authorized_keys
RUN echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCyYq96lg/36J+aG6TL/mPg05XCO2zsp1JR9HRJ5oA/o3ohzsmdowiTMiSxaZH55WXol13zVPO+JRutKi0v/Xmb+OWx9R8BPcM7u4PeseQQ/WKJ6ZzZVHHergBdGwSTSBcB9lK92Yj/XqFTv+3saJjtSb36IHjq9Ew0c/8oWvAGCy8pibZ/KRt87UQzHtvYyZ0TJjWNVKlbhE33b9Tm48Ou7TW84fEIifW0VAKmdGNoNVBHPPeHd173GQEQVkocZkq+YYdXbeb4QWvtVaHnW7m8aOMRuEBoYM6I72+PteMN+C31k/Zej1dOC/W37kwCOIPdGKuQUd4VDYk7YHttPjKt kitchen_docker_key' >> /home/kitchen/.ssh/authorized_keys
# Network HW + pci tools install
RUN apt-get -y install ifupdown dbus pciutils kmod iw wireless-tools
# Start SSH as test-kitchen does
RUN echo "SSHD_OPTS='-o UseDNS=no -o UsePAM=no -o PasswordAuthentication=yes -o UsePrivilegeSeparation=no -o PidFile=/tmp/sshd.pid'" > /etc/default/ssh
# Fix dbus not starting & set multi-user.target instead of graphical.target
RUN ln -s /lib/systemd/system/systemd-logind.service /etc/systemd/system/multi-user.target.wants/systemd-logind.service
RUN mkdir /etc/systemd/system/sockets.target.wants/
RUN ln -s /lib/systemd/system/dbus.socket /etc/systemd/system/sockets.target.wants/dbus.socket
RUN systemctl set-default multi-user.target
ENTRYPOINT ["/sbin/init"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment