5a0ad8ac4590997737c6c417667861309835a1c5
[csit.git] / fdio.infra.ansible / roles / docker_images / files / base / Dockerfile
1 FROM ubuntu:22.04
2
3 # Setup the environment
4 ENV DEBIAN_FRONTEND=noninteractive
5
6 # Configure locales
7 RUN apt-get update -qq \
8  && apt-get install -y \
9         apt-utils \
10         locales \
11  && sed -i 's/# \(en_US\.UTF-8 .*\)/\1/' /etc/locale.gen \
12  && locale-gen en_US.UTF-8 \
13  && dpkg-reconfigure --frontend=noninteractive locales \
14  && update-locale LANG=en_US.UTF-8 \
15  && TZ=Etc/UTC && ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
16  && rm -r /var/lib/apt/lists/*
17 ENV LANG="en_US.UTF-8" LANGUAGE="en_US" LC_ALL="en_US.UTF-8"
18
19 # Install packages and Docker
20 RUN apt-get -q update \
21  && apt-get install -y -qq \
22         apt-transport-https \
23         bridge-utils \
24         ca-certificates \
25         cgroup-tools \
26         cloud-init \
27         cmake \
28         curl \
29         dkms \
30         ethtool \
31         gdb \
32         gfortran \
33         libapr1 \
34         libblas-dev \
35         libffi-dev \
36         liblapack-dev \
37         libmbedcrypto7 \
38         libmbedtls14 \
39         libmbedx509-1 \
40         libnuma1 \
41         libnuma-dev \
42         libpcap-dev \
43         libpixman-1-dev \
44         libsctp-dev \
45         libssl-dev \
46         net-tools \
47         ninja-build \
48         openssh-server \
49         pciutils \
50         python3-all \
51         python3-apt \
52         python3-cffi \
53         python3-cffi-backend \
54         python3-dev \
55         python3-pip \
56         python3-pyelftools \
57         python3-setuptools \
58         python3-virtualenv \
59         qemu-system \
60         rsyslog \
61         screen \
62         socat \
63         software-properties-common \
64         strace \
65         strongswan \
66         ssh \
67         sshpass \
68         sudo \
69         supervisor \
70         tar \
71         tcpdump \
72         unzip \
73         vim \
74         wget \
75         zlib1g-dev \
76  && ln -s -f /usr/lib/x86_64-linux-gnu/libc.a /usr/lib/x86_64-linux-gnu/liblibc.a \
77  && curl -fsSL https://get.docker.com | sh \
78  && rm -rf /var/lib/apt/lists/*
79
80 # Fix permissions
81 RUN chown root:syslog /var/log \
82  && chmod 755 /etc/default
83
84 # Create directory structure
85 RUN mkdir -p /tmp/dumps \
86  && mkdir -p /var/cache/vpp/python \
87  && mkdir -p /var/run/sshd \
88  && mkdir -p /var/log/vpp
89
90 # CSIT PIP pre-cache
91 RUN pip3 install \
92         ecdsa==0.18.0 \
93         paramiko==2.9.3 \
94         pycrypto==2.6.1 \
95         PyYAML==5.4.1 \
96         requests==2.25.1 \
97         robotframework==5.0.1 \
98         scapy==2.4.5 \
99         scp==0.14.4 \
100         ansible==5.10.0 \
101         ansible-core==2.12.7 \
102         dill==0.3.5.1 \
103         numpy==1.22.4 \
104         scipy==1.8.1 \
105         boto3==1.17.78 \
106         botocore==1.20.78 \
107         hdrhistogram==0.6.1 \
108         pandas==1.4.2 \
109         plotly==4.1.1 \
110         PTable==0.9.2 \
111         Sphinx==3.5.4 \
112         sphinx-rtd-theme==0.5.2 \
113         sphinxcontrib-applehelp==1.0.2 \
114         sphinxcontrib-devhelp==1.0.2 \
115         sphinxcontrib-htmlhelp==2.0.0 \
116         sphinxcontrib-jsmath==1.0.1 \
117         sphinxcontrib-programoutput==0.17 \
118         sphinxcontrib-qthelp==1.0.3 \
119         sphinxcontrib-robotdoc==0.11.0 \
120         sphinxcontrib-serializinghtml==1.1.5 \
121         ply==3.11 \
122         jsonschema==4.1.0 \
123         rfc3339-validator==0.1.4 \
124         rfc3987==1.3.8 \
125         alabaster==0.7.12 \
126         attrs==21.4.0 \
127         Babel==2.10.3 \
128         bcrypt==3.2.2 \
129         certifi==2022.6.15 \
130         cffi==1.15.1 \
131         chardet==4.0.0 \
132         cryptography==36.0.2 \
133         docutils==0.16 \
134         future==0.18.2 \
135         idna==2.10 \
136         imagesize==1.4.1 \
137         Jinja2==3.0.3 \
138         jmespath==0.10.0 \
139         MarkupSafe==2.1.1 \
140         packaging==21.3 \
141         pbr==5.9.0 \
142         pycparser==2.21 \
143         Pygments==2.12.0 \
144         PyNaCl==1.5.0 \
145         pyparsing==3.0.9 \
146         pyrsistent==0.18.1 \
147         python-dateutil==2.8.2 \
148         pytz==2022.1 \
149         resolvelib==0.5.4 \
150         retrying==1.3.3 \
151         s3transfer==0.4.2 \
152         six==1.16.0 \
153         snowballstemmer==2.2.0 \
154         urllib3==1.26.10 \
155         meson==0.64.1
156
157 RUN groupadd -g 1000 testuser \
158  && useradd -rm -d /home/testuser -s /bin/bash -g testuser -G sudo -u 1000 testuser \
159  && echo 'testuser:Csit1234' | chpasswd
160
161 RUN echo 'root:Csit1234' | chpasswd \
162  && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config \
163  && echo "export VISIBLE=now" >> /etc/profile
164
165 RUN service ssh start