ansible/test/utils/docker/opensuse42.2/Dockerfile

78 lines
2.3 KiB
Docker

FROM opensuse:42.2
RUN zypper --non-interactive --gpg-auto-import-keys refresh --services --force && \
zypper --non-interactive install --force systemd-sysvinit && \
zypper --non-interactive install --auto-agree-with-licenses --no-recommends \
acl \
apache2 \
asciidoc \
bzip2 \
curl \
dbus-1-python \
gcc \
git \
glibc-i18ndata \
glibc-locale \
iproute2 \
lsb-release \
make \
mariadb \
mercurial \
openssh \
password-store \
postgresql-server \
python-cryptography \
python-devel \
python-httplib2 \
python-jinja2 \
python-keyczar \
python-lxml \
python-mock \
python-MySQL-python \
python-nose \
python-paramiko \
python-passlib \
python-pip \
python-psycopg2 \
python-PyYAML \
python-setuptools \
python-virtualenv \
rpm-build \
ruby \
sshpass \
subversion \
sudo \
tar \
unzip \
which \
zip \
&& \
zypper clean --all
# systemd path differs from rhel
ENV LIBSYSTEMD=/usr/lib/systemd/system
RUN (cd ${LIBSYSTEMD}/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f ${LIBSYSTEMD}/multi-user.target.wants/*; \
rm -f /etc/systemd/system/*.wants/*; \
rm -f ${LIBSYSTEMD}/local-fs.target.wants/*; \
rm -f ${LIBSYSTEMD}/sockets.target.wants/*udev*; \
rm -f ${LIBSYSTEMD}/sockets.target.wants/*initctl*; \
rm -f ${LIBSYSTEMD}/basic.target.wants/*;
# don't create systemd-session for ssh connections
RUN sed -i /pam_systemd/d /etc/pam.d/common-session-pc
RUN mkdir /etc/ansible/
RUN /usr/bin/echo -e '[local]\nlocalhost ansible_connection=local' > /etc/ansible/hosts
VOLUME /sys/fs/cgroup /run /tmp
RUN ssh-keygen -q -t rsa1 -N '' -f /etc/ssh/ssh_host_key && \
ssh-keygen -q -t dsa -N '' -f /etc/ssh/ssh_host_dsa_key && \
ssh-keygen -q -t rsa -N '' -f /etc/ssh/ssh_host_rsa_key && \
ssh-keygen -q -t rsa -N '' -f /root/.ssh/id_rsa && \
cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys && \
for key in /etc/ssh/ssh_host_*_key.pub; do echo "localhost $(cat ${key})" >> /root/.ssh/known_hosts; done
# explicitly enable the service, opensuse default to disabled services
RUN systemctl enable sshd.service
RUN pip install coverage junit-xml
ENV container=docker
CMD ["/sbin/init"]