close

一個好網站 

http://www.codeconcepts.eu/#wizard

給一些資料就有 Docker 檔案下載了 

config
Dockerfile
start_build.sh
start_iredmail.sh

來分析一下檔案

Dockerfile ....這看是固定的

FROM phusion/baseimage:latest
MAINTAINER Robert (robert@nigma.org)
EXPOSE 25 53/udp 53/tcp 80 110 143 389 443 587 636 993 995 2000 3306 10024 10025 10031
VOLUME /var/vmail
# Update system packages.
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive apt-get upgrade -y
RUN DEBIAN_FRONTEND=noninteractive apt-get install wget bzip2
# Download and extract iredmail
RUN DEBIAN_FRONTEND=noninteractive wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.5-1.tar.bz2 -O iredmail.tar.bz2
RUN DEBIAN_FRONTEND=noninteractive mkdir /iredmail
RUN DEBIAN_FRONTEND=noninteractive tar -xvf iredmail.tar.bz2 -C iredmail/ --strip-components=1
# Receive the config and the docker start script
COPY ./config /iredmail/config
COPY ./start_iredmail.sh /iredmail/start_iredmail.sh
RUN DEBIAN_FRONTEND=noninteractive chmod +x /iredmail/start_iredmail.sh
# Start installation or services when container is started

 

config....這是輸入的資訊轉換的 ...PASSWD --> P@ssw0rd

export VMAIL_USER_HOME_DIR='/var/vmail'
export STORAGE_BASE_DIR='/var/vmail'
export STORAGE_MAILBOX_DIR='/var/vmail/vmail1'
export SIEVE_DIR='/var/vmail/sieve'
export BACKUP_DIR='/var/vmail/backup'
export BACKUP_SCRIPT_OPENLDAP='/var/vmail/backup/backup_openldap.sh'
export BACKUP_SCRIPT_MYSQL='/var/vmail/backup/backup_mysql.sh'
export BACKUP_SCRIPT_PGSQL='/var/vmail/backup/backup_pgsql.sh'
export WEB_SERVER_IS_NGINX='YES'
export WEB_SERVER_IS_APACHE='NO'
export BACKEND_ORIG='MYSQL'
export BACKEND='MYSQL'
export VMAIL_DB_BIND_PASSWD='mmujWEQaNU2lZoYOJ7sop683JTtHR6'
export VMAIL_DB_ADMIN_PASSWD='d5ixb52S3EARQq6C3DyiPMbMEKtXfb'
export LDAP_BINDPW='Ti4ZF5RwKIZ0nFnh6fKsnp5oZyWjm2'
export LDAP_ADMIN_PW='i40bQC4xYC4LBheOoaRWs50mgWK16U'
export MYSQL_ROOT_PASSWD='P@ssw0rd'
export MYSQL_ROOT_USER='root'
export SQL_SERVER_ADDRESS='127.0.0.1'
export SQL_SERVER_PORT='3306'
export FIRST_DOMAIN='test.duckdns.org'
export DOMAIN_ADMIN_NAME='postmaster'
export SITE_ADMIN_NAME='postmaster@test.duckdns.org'
export DOMAIN_ADMIN_PASSWD_PLAIN='P@ssw0rd'
export DOMAIN_ADMIN_PASSWD='P@ssw0rd'
export SITE_ADMIN_PASSWD='P@ssw0rd'
export FIRST_USER='postmaster'
export FIRST_USER_PASSWD='P@ssw0rd'
export FIRST_USER_PASSWD_PLAIN='P@ssw0rd'
export USE_IREDADMIN='YES'
export USE_RCM='YES'
export USE_AWSTATS='YES'
export USE_FAIL2BAN='YES'
export AMAVISD_DB_PASSWD='PdNMcre7P1wGCVNGxZEeJW7I7avF1o'
export IREDADMIN_DB_PASSWD='nDqZfsghmT8Gqxr43ORwQqhMXbKgGy'
export RCM_DB_PASSWD='uU2IJ72Pdbz0INuXEmAlHgAORnPrrk'
export SOGO_DB_PASSWD='QL3FkBA0eB9BAEeVqH6QSCUgeBtURK'
export SOGO_SIEVE_MASTER_PASSWD='3vkU1sjqpnSlNgQPZ5mVK4nu0sUraB'
#EOF[root@test iredmail.docker.script]#

 

 

start_iredmail.sh .....這是固定的

用來判斷是否有安裝 ireadmail , 沒有就安裝, 有就啟動服務

#!/bin/bash
file="/iredmail/docker.build.completed"
if [ -f "$file" ]
then
        echo "$file found."
        echo "Starting iredmail services"
        service syslog-ng restart
service php5-fpm restart
service cron restart
service mysql restart
service amavis restart
service nginx restart
#service dovecot restart - doesn't exist on ubuntu 14 anymore?
#service iptables restart - no need as docker proxy with expose ports are protecting?
service ssh restart
rm -rf /var/run/fail2ban/fail2ban.sock
service fail2ban restart
service iredapd restart
service postfix restart
#service postfix-cluebringer restart
rm -rf /run/uwsgi/app/iredadmin/socket
rm -rf /var/run/uwsgi_iredadmin.socket
service uwsgi restart
rm -rf /var/run/dovecot/master.pid
dovecot
#rm -rf /tmp/clamd.socket
service clamav-daemon restart
service clamav-freshclam restart
cat > /dev/null

else
        echo "$file not found."
        echo "Installning iredmail"
        AUTO_USE_EXISTING_CONFIG_FILE=y \
    AUTO_INSTALL_WITHOUT_CONFIRM=y \
    AUTO_CLEANUP_REMOVE_SENDMAIL=y \
    AUTO_CLEANUP_REMOVE_MOD_PYTHON=y \
    AUTO_CLEANUP_REPLACE_FIREWALL_RULES=y \
    AUTO_CLEANUP_RESTART_IPTABLES=y \
    AUTO_CLEANUP_REPLACE_MYSQL_CONFIG=y \
    AUTO_CLEANUP_RESTART_POSTFIX=n \
    bash /iredmail/iRedMail.sh

        touch /iredmail/docker.build.completed
        ./iredmail/start_iredmail.sh
fi

 

 start_build.sh ....這是固定的 ...
我有改 加 ip 進去 ...沒有加我的機器會跑 ipv6

docker build --no-cache -t iredmail-installer .
docker run -d -h dingyue.duckdns.org --name  iredmail-container -t -p 192.168.0.70:25:25 -p 192.168.0.70:80:80 -p 192.168.0.70:110:110 -p 192.168.0.70:143:143 -p 192.168.0.70:443:443 -p 192.168.0.70:587:587 -p 192.168.0.70:993:993 -p 192.168.0.70:995:995  iredmail-installer

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 echochio 的頭像
    echochio

    echochio

    echochio 發表在 痞客邦 留言(0) 人氣()