aboutsummaryrefslogtreecommitdiff
path: root/Dockerfile
blob: 9b64b61afbe780632f3d5ea37b8c851ac813683d (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
FROM debian:buster

RUN apt-get update && apt-get install -y \
   pkg-config \
   cmake \
   build-essential \
   libhdf5-dev \
   libgsl-dev \
   libgtk-3-dev \
   libcairo2-dev \
   libeigen3-dev \
   libpango1.0-dev \
   libgdk-pixbuf2.0-dev \
   libfftw3-dev \
   libncurses-dev \
   libpng-dev \
   libtiff5-dev \
   git \
   flex \
   bison \
   libzmq3-dev \
   libmsgpack-dev \
   python3-dev \
   python3-pip \
   unzip \
   wget \
   curl \
   ninja-build \
   && apt-get clean && rm -rf /var/lib/apt/lists/*

WORKDIR /root
RUN pip3 install meson

WORKDIR /home/crystfel-build

# Mosflm
RUN wget -nv https://www.mrc-lmb.cam.ac.uk/mosflm/mosflm/ver740/pre-built/mosflm-linux-64-noX11.zip
RUN unzip mosflm-linux-64-noX11.zip
RUN mv mosflm-linux-64-noX11 /usr/local/bin/mosflm

# CrystFEL
RUN git clone https://gitlab.desy.de/thomas.white/crystfel.git
RUN cd crystfel && meson build -Dprefix=/usr/local
RUN cd crystfel && ninja -C build
RUN cd crystfel && ninja -C build test
RUN cd crystfel && ninja -C build install

## Stage 2
FROM debian:buster-slim
RUN apt-get update && apt-get install -y \
   libhdf5-103 \
   libgsl23 \
   libgtk-3-0 \
   libcairo2 \
   libpango1.0 \
   libgdk-pixbuf2.0 \
   libfftw3-double3 \
   libncurses6 \
   libpng16-16 \
   libtiff5 \
   libzmq5 \
   libmsgpackc2 \
   && apt-get clean && rm -rf /var/lib/apt/lists/*
COPY --from=0 /usr/local /usr/local

# Environment variable needed for CrystFEL GUI and Mosflm
# The file is installed by libccp4c, a wrapped subproject of CrystFEL
ENV SYMINFO=/usr/share/ccp4/syminfo.lib

RUN ldconfig