summaryrefslogtreecommitdiff
path: root/docker/Rockerfile.piglit
blob: 0d8f8bb454da49d09b09d0e726bfcce730559e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#
# This builds Piglit.
#
# ~~~
#  rocker build -f Rockerfile.piglit [--attach]                                 \
#    [--var IMAGE=freedesktop/mesa] # freedesktop/mesa, myrepo/myproyect, ...   \
#    [--var TAG=piglit]             # piglit-17.0, piglit-13.0, ...             \
#    [--var PARENT=ubuntu:xenial]   # ubuntu:xenial, freedesktop/mesa:17.3, ...
# ~~~
#
# Environment variables that are used in the build:
#  - MAKEFLAGS: flags to pass to make (e.g., "-j8")
#  - CCACHE_DIR: ccache directory (default: ~/.ccache)
#
# To run
#
# ~~~
#   mkdir -p -m777 ~/my_results_dir
#   docker run --privileged --rm -t -v ~/my_results_dir:/results:Z  \
#              -v /tmp/.X11-unix:/tmp/.X11-unix freedesktop/mesa:piglit
# ~~~
#

{{ $image := (or .IMAGE "freedesktop/mesa") }}
{{ $parent_image := (or .PARENT "ubuntu:xenial") }}
{{ $ccachedir := (or .Env.CCACHE_DIR "~/.ccache") }}

FROM {{ $parent_image }}

LABEL maintainer "Andres Gomez <agomez@igalia.com>"

USER root

ENV LC_ALL=C.UTF-8

RUN apt-get update                                                      \
  && apt-get -y --no-install-recommends install sudo gcc g++ ccache     \
    git pkg-config bash-completion cmake                                \
    libz-dev libpng-dev libgl-dev libegl1-mesa-dev libwaffle-dev        \
    python3-setuptools python3-pip                                      \
  && rm -fr /var/lib/apt/lists/*

RUN pip3 install numpy six mako

RUN getent passwd local > /dev/null || adduser --gecos "" local && passwd -d local && adduser local sudo

USER local

{{ if .Env.MAKEFLAGS }}
ENV MAKEFLAGS={{ .Env.MAKEFLAGS }}
{{ end }}

WORKDIR /home/local

MOUNT {{ $ccachedir }}:/home/local/.ccache:Z

RUN sudo chown -R local:local /home/local/.ccache

ENV PATH=/usr/lib/ccache:$PATH

ADD . /home/local/piglit
RUN sudo chown -R local:local /home/local/piglit

WORKDIR /home/local/piglit

ATTACH [ "/bin/bash" ]

RUN cmake . && cmake --build .

VOLUME /results

{{ if .TAG }}
TAG {{ $image }}:{{ .TAG }}
{{ end }}