RUN sh -c 'cd /tmp/ctdl_build/citadel/citadel && ./bootstrap && ./configure && make && make install'
RUN sh -c 'cd /tmp/ctdl_build/citadel/webcit && ./bootstrap && ./configure && make && make install'
RUN sh -c 'cd /tmp/ctdl_build/citadel/textclient && ./bootstrap && ./configure --prefix=/usr && make && make install'
-RUN sh -c 'cd / && rm -vfr /tmp/ctdl_build'
+RUN sh -c 'cd /tmp && rm -vfr /tmp/ctdl_build'
RUN sh -c 'rm -vrf /usr/local/citadel/data /usr/local/citadel/files /usr/local/citadel/keys /usr/local/webcit/keys'
# Supervisor
ADD supervisor.conf /etc/
ADD citadel-docker-startup.sh /usr/local/bin/
+RUN sh -c 'chmod 755 /usr/local/bin/citadel-docker-startup.sh'
# Ports
-EXPOSE 25/tcp
-EXPOSE 80/tcp
-EXPOSE 110/tcp
-EXPOSE 119/tcp
-EXPOSE 143/tcp
-EXPOSE 443/tcp
-EXPOSE 465/tcp
-EXPOSE 504/tcp
-EXPOSE 563/tcp
-EXPOSE 587/tcp
-EXPOSE 993/tcp
-EXPOSE 995/tcp
-EXPOSE 2020/tcp
-EXPOSE 5222/tcp
+EXPOSE 25 80 110 119 143 443 465 504 563 587 993 995 2020 5222
+# Let's go!
CMD /usr/local/bin/citadel-docker-startup.sh
# This is the script that is run when the Citadel Docker Container starts up.
+# Create directories within the volume, if they do not already exist.
+mkdir -p /citadel-data 2>/dev/null
+mkdir -p /citadel-data/data 2>/dev/null
+mkdir -p /citadel-data/files 2>/dev/null
+mkdir -p /citadel-data/keys 2>/dev/null
-# Any of these can fail, since they may already exist
-mkdir /citadel-data
-mkdir -p /citadel-data/data
-mkdir -p /citadel-data/files
-mkdir -p /citadel-data/keys
+# Create symlinks into the volume subdirectories, from where our programs expect them to be.
+ln -sfv /citadel-data/data /usr/local/citadel/
+ln -sfv /citadel-data/files /usr/local/citadel/
+ln -sfv /citadel-data/keys /usr/local/citadel/
+ln -sfv /citadel-data/keys /usr/local/webcit/
-# Now create the links
-ln -sfv /citadel-data/data /usr/local/citadel/data
-ln -sfv /citadel-data/files /usr/local/citadel/files
-ln -sfv /citadel-data/keys /usr/local/citadel/keys
-ln -sfv /citadel-data/keys /usr/local/webcit/keys
-
-# supervisord will take it from here
-exec supervisor
+# supervisord will take it from here.
+exec /usr/bin/supervisord -c /etc/supervisor.conf