From 58158406e0091307a78d79192341ddd6de29f568 Mon Sep 17 00:00:00 2001 From: BILAL EL HASNAOUI <bilal.elhasnaoui@polytech-lille.net> Date: Sat, 18 May 2024 17:39:21 +0200 Subject: [PATCH] Feat: Add CI pipeline to deploy the synapse application --- Dockerfile | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 95 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index f0a0353..a6bd8be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,104 @@ -# Dockerfile +FROM ubuntu:14.04 -# Use a base image with Python and pip installed -FROM python:3 +RUN apt-get update -y && \ + DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + acl \ + apache2 \ + asciidoc \ + bzip2 \ + cdbs \ + curl \ + debhelper \ + debianutils \ + devscripts \ + docbook-xml \ + dpkg-dev \ + fakeroot \ + gawk \ + gcc \ + git \ + libffi-dev \ + libssl-dev \ + libxml2-utils \ + locales \ + make \ + mercurial \ + mysql-server \ + openssh-client \ + openssh-server \ + python-dev \ + pass \ + python-httplib2 \ + python-jinja2 \ + python-keyczar \ + python-lxml \ + python-mock \ + python-mysqldb \ + python-nose \ + python-paramiko \ + python-passlib \ + python-pip \ + python-setuptools \ + python-virtualenv \ + python-yaml \ + reprepro \ + rsync \ + ruby \ + sshpass \ + subversion \ + sudo \ + tzdata \ + unzip \ + xsltproc \ + zip \ + && \ + apt-get clean -# Install Ansible -RUN pip install ansible +RUN pip install pip --upgrade +RUN pip install --upgrade pycrypto cryptography +# helpful things taken from the ubuntu-upstart Dockerfile: +# https://github.com/tianon/dockerfiles/blob/4d24a12b54b75b3e0904d8a285900d88d3326361/sbin-init/ubuntu/upstart/14.04/Dockerfile +ADD init-fake.conf /etc/init/fake-container-events.conf + +# undo some leet hax of the base image +RUN rm /usr/sbin/policy-rc.d; \ + rm /sbin/initctl; dpkg-divert --rename --remove /sbin/initctl +# remove some pointless services +RUN /usr/sbin/update-rc.d -f ondemand remove; \ + for f in \ + /etc/init/u*.conf \ + /etc/init/mounted-dev.conf \ + /etc/init/mounted-proc.conf \ + /etc/init/mounted-run.conf \ + /etc/init/mounted-tmp.conf \ + /etc/init/mounted-var.conf \ + /etc/init/hostname.conf \ + /etc/init/networking.conf \ + /etc/init/tty*.conf \ + /etc/init/plymouth*.conf \ + /etc/init/hwclock*.conf \ + /etc/init/module*.conf\ + ; do \ + dpkg-divert --local --rename --add "$f"; \ + done; \ + echo '# /lib/init/fstab: cleared out for bare-bones Docker' > /lib/init/fstab +# end things from ubuntu-upstart Dockerfile + +RUN rm /etc/apt/apt.conf.d/docker-clean +RUN mkdir /etc/ansible/ +RUN /bin/echo -e "[local]\nlocalhost ansible_connection=local" > /etc/ansible/hosts +RUN locale-gen en_US.UTF-8 +RUN 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 +VOLUME /sys/fs/cgroup /run/lock /run /tmp +RUN pip install coverage junit-xml # Copy your playbook and inventory file into the container COPY playbooks/* /ansible/* COPY inventory.ini /ansible/inventory.ini # Set the working directory WORKDIR /ansible +ENV container=docker +CMD ["/sbin/init"] -- GitLab