mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-11-22 02:17:26 +00:00
Better Dockerfile support
This commit is contained in:
parent
80bf60715e
commit
5ceec760b9
@ -6,7 +6,11 @@
|
|||||||
# sudo docker.io build -t box .
|
# sudo docker.io build -t box .
|
||||||
# sudo docker.io run -i -t box
|
# sudo docker.io run -i -t box
|
||||||
|
|
||||||
FROM ubuntu:14.04
|
# Revert to phusion's baseimage once they upgrade to Ubuntu 14.04
|
||||||
|
#FROM phusion/baseimage:<version-based-on-14.04>
|
||||||
|
# For now use an upgraded image provided by pjz, based on his
|
||||||
|
# a PR: https://github.com/phusion/baseimage-docker/pull/64
|
||||||
|
FROM pjzz/phusion-baseimage:0.9.10
|
||||||
MAINTAINER Joshua Tauberer (http://razor.occams.info)
|
MAINTAINER Joshua Tauberer (http://razor.occams.info)
|
||||||
|
|
||||||
ENV PUBLIC_HOSTNAME box.local
|
ENV PUBLIC_HOSTNAME box.local
|
||||||
@ -16,19 +20,20 @@ ENV PUBLIC_HOSTNAME box.local
|
|||||||
# host forward its port 53 (TCP/UDP) traffic to the docker container.
|
# host forward its port 53 (TCP/UDP) traffic to the docker container.
|
||||||
# Since we can't get the host's IP address here, we'll set this to
|
# Since we can't get the host's IP address here, we'll set this to
|
||||||
# a dummy value.
|
# a dummy value.
|
||||||
ENV PUBLIC_IP 127.0.123.123
|
ENV PUBLIC_IP 127.0.122.123
|
||||||
|
|
||||||
# Our install will fail if SSH is installed and allows password-based authentication.
|
# Turn off password-based authentication; for ssh access see the phusion-baseimage docs
|
||||||
RUN apt-get install -q -y openssh-server
|
RUN sed -i 's/^#\s*\(PasswordAuthentication no\)/\1/' /etc/ssh/sshd_config
|
||||||
RUN sed -i /etc/ssh/sshd_config -e "s/^#PasswordAuthentication yes/PasswordAuthentication no/g"
|
|
||||||
RUN service ssh restart
|
|
||||||
|
|
||||||
# Start our setup.
|
# install some tools to install mailinabox
|
||||||
RUN apt-get install -q -y git
|
RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install -q -y git ca-certificates wget && apt-get clean
|
||||||
|
|
||||||
|
# actually install mailinabox
|
||||||
RUN git clone https://github.com/joshdata/mailinabox
|
RUN git clone https://github.com/joshdata/mailinabox
|
||||||
RUN cd mailinabox; scripts/start.sh
|
RUN cd mailinabox && scripts/start.sh
|
||||||
|
|
||||||
|
# configure mailinabox services
|
||||||
|
ADD setup_services.sh /usr/local/bin/setup_services.sh
|
||||||
|
RUN bash /usr/local/bin/setup_services.sh
|
||||||
|
|
||||||
# Launch configuration.
|
|
||||||
ADD start_services.sh /usr/local/bin/start_services.sh
|
|
||||||
CMD bash /usr/local/bin/start_services.sh
|
|
||||||
EXPOSE 22 25 53 443 587 993
|
EXPOSE 22 25 53 443 587 993
|
||||||
|
58
containers/docker/setup_services.sh
Normal file
58
containers/docker/setup_services.sh
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
echo "Setting up Mail-in-a-Box services..."
|
||||||
|
|
||||||
|
SERVICES="nsd postfix dovecot opendkim nginx php-fastcgi"
|
||||||
|
|
||||||
|
for service in $SERVICES; do
|
||||||
|
mkdir -p /etc/service/$service
|
||||||
|
done
|
||||||
|
|
||||||
|
cat <<EORUN >/etc/service/nsd/run
|
||||||
|
#!/bin/sh
|
||||||
|
exec /usr/bin/nsd -d
|
||||||
|
EORUN
|
||||||
|
|
||||||
|
cat <<EORUN >/etc/service/postfix/run
|
||||||
|
#!/bin/sh
|
||||||
|
# from http://smarden.org/runit/runscripts.html#postfix
|
||||||
|
exec 1>&2
|
||||||
|
|
||||||
|
daemon_directory=/usr/lib/postfix \
|
||||||
|
command_directory=/usr/sbin \
|
||||||
|
config_directory=/etc/postfix \
|
||||||
|
queue_directory=/var/spool/postfix \
|
||||||
|
mail_owner=postfix \
|
||||||
|
setgid_group=postdrop \
|
||||||
|
/etc/postfix/postfix-script check || exit 1
|
||||||
|
|
||||||
|
exec /usr/lib/postfix/master
|
||||||
|
EORUN
|
||||||
|
|
||||||
|
cat <<EORUN >/etc/service/dovecot/run
|
||||||
|
#!/bin/sh
|
||||||
|
exec dovecot
|
||||||
|
EORUN
|
||||||
|
|
||||||
|
cat <<EORUN >/etc/service/opendkim/run
|
||||||
|
#!/bin/sh
|
||||||
|
exec opendkim -f -x /etc/opendkim.conf -u opendkim -P /var/run/opendkim/opendkim.pid
|
||||||
|
EORUN
|
||||||
|
|
||||||
|
echo "daemon off;" >> /etc/nginx/nginx.conf
|
||||||
|
cat <<EORUN >/etc/service/nginx/run
|
||||||
|
#!/bin/sh
|
||||||
|
exec nginx
|
||||||
|
EORUN
|
||||||
|
|
||||||
|
cat <<EORUN >/etc/service/php-fastcgi/run
|
||||||
|
#!/bin/bash
|
||||||
|
export PHP_FCGI_CHILDREN=4 PHP_FCGI_MAX_REQUESTS=1000
|
||||||
|
exec /usr/bin/php-cgi -q -b /tmp/php-fastcgi.www-data.sock -c /etc/php5/cgi/php.ini
|
||||||
|
EORUN
|
||||||
|
|
||||||
|
for service in $SERVICES; do
|
||||||
|
chmod a+x /etc/service/$service/run
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Your Mail-in-a-Box services are configured."
|
||||||
|
|
@ -1,12 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
echo "Starting Mail-in-a-Box services..."
|
|
||||||
|
|
||||||
service nsd start
|
|
||||||
service postfix start
|
|
||||||
dovecot # it's integration with Upstart doesn't work in docker
|
|
||||||
service opendkim start
|
|
||||||
service nginx start
|
|
||||||
service php-fastcgi start
|
|
||||||
|
|
||||||
echo "Your Mail-in-a-Box is running."
|
|
||||||
bash
|
|
Loading…
Reference in New Issue
Block a user