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