Fleshing out the command line options for run-citadel.sh
[citadel-docker.git] / Dockerfile
1 # Dockerfile for Citadel
2
3 FROM bitnami/minideb:latest
4
5 VOLUME /citadel-data
6
7 # Install prerequisites
8 RUN install_packages make build-essential zlib1g-dev libldap2-dev libssl-dev gettext libical-dev libexpat1-dev curl libcurl4-openssl-dev git autoconf automake netbase libreadline-dev
9
10 # Deploy "ctdlvisor", a small supervisor program which runs inside the container to wrangle the various services
11 ADD ctdlvisor.c /tmp
12
13 # Download and build Citadel
14 RUN sh -c 'mkdir /tmp/ctdl_build && \
15         cd /tmp/ctdl_build && \
16         git clone git://git.citadel.org/appl/gitroot/citadel.git && \
17         cd /tmp/ctdl_build/citadel/libcitadel && \
18         ./bootstrap && \
19         ./configure --prefix=/usr && \
20         make && \
21         make install && \
22         cd /tmp/ctdl_build/citadel/citadel && \
23         ./bootstrap && \
24         ./configure && \
25         make && \
26         make install && \
27         cd /tmp/ctdl_build/citadel/webcit && \
28         ./bootstrap && \
29         ./configure && \
30         make && \
31         make install && \
32         cd /tmp/ctdl_build/citadel/textclient && \
33         ./bootstrap && \
34         ./configure --prefix=/usr --ctdldir=/citadel_data && \
35         make && make install && \
36         cd /tmp && \
37         cc ctdlvisor.c -o /usr/local/bin/ctdlvisor && \
38         rm -vf /tmp/ctdlvisor.c && \
39         cd /tmp && \
40         rm -vfr /tmp/ctdl_build && \
41         rm -vrf /usr/local/citadel/data /usr/local/citadel/files /usr/local/citadel/keys /usr/local/webcit/keys'
42
43 # Ports
44 EXPOSE 25 80 110 119 143 443 465 504 563 587 993 995 2020 5222
45
46 # Let's go!
47 ENTRYPOINT ["/usr/local/bin/ctdlvisor"]