xref: /openbmc/openbmc-build-scripts/scripts/build-qemu-robot-docker.sh (revision 6ba6814f7cd9ee39d0f6e948dc140789cde1b5cd)
1#!/bin/bash -xe
2#
3# Build the required docker image to run QEMU and Robot test cases
4#
5#  Parameters:
6#   parm1:  <optional, the name of the docker image to generate>
7#            default is openbmc/ubuntu-robot-qemu
8
9set -uo pipefail
10
11DOCKER_IMG_NAME=${1:-"openbmc/ubuntu-robot-qemu"}
12
13# Determine our architecture, ppc64le or the other one
14if [ $(uname -m) == "ppc64le" ]; then
15    DOCKER_BASE="ppc64le/"
16else
17    DOCKER_BASE=""
18fi
19
20################################# docker img # #################################
21# Create docker image that can run QEMU and Robot Tests
22Dockerfile=$(cat << EOF
23FROM ${DOCKER_BASE}ubuntu:latest
24
25ENV DEBIAN_FRONTEND noninteractive
26
27RUN apt-get update && apt-get install -yy \
28    debianutils \
29    gawk \
30    git \
31    python \
32    python-dev \
33    python-setuptools \
34    python3 \
35    python3-dev \
36    python3-setuptools \
37    socat \
38    texinfo \
39    wget \
40    gcc \
41    libffi-dev \
42    libssl-dev \
43    xterm \
44    mwm \
45    ssh \
46    vim \
47    iputils-ping \
48    sudo \
49    cpio \
50    unzip \
51    diffstat \
52    expect \
53    curl \
54    build-essential \
55    libpixman-1-0 \
56    libglib2.0-0 \
57    sshpass \
58    libasound2 \
59    libfdt1 \
60    libpcre3
61
62RUN easy_install \
63    tox \
64    pip \
65    requests
66
67RUN pip install \
68    json2yaml \
69    robotframework \
70    robotframework-requests \
71    robotframework-sshlibrary \
72    robotframework-scplibrary \
73    pysnmp
74
75RUN wget https://sourceforge.net/projects/ipmitool/files/ipmitool/1.8.18/ipmitool-1.8.18.tar.bz2
76RUN tar xvfj ipmitool-*.tar.bz2
77RUN ./ipmitool-1.8.18/configure
78RUN make
79RUN make install
80
81RUN grep -q ${GROUPS} /etc/group || groupadd -g ${GROUPS} ${USER}
82RUN grep -q ${UID} /etc/passwd || useradd -d ${HOME} -m -u ${UID} -g ${GROUPS} \
83                    ${USER}
84USER ${USER}
85ENV HOME ${HOME}
86RUN /bin/bash
87EOF
88)
89
90################################# docker img # #################################
91
92# Build above image
93docker build -t ${DOCKER_IMG_NAME} - <<< "${Dockerfile}"
94