Created
November 4, 2016 16:33
-
-
Save nvpnathan/0673deedba1c6554946b4a04b4421c8f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#asterisk docker file for unraid 6 | |
FROM phusion/baseimage:0.9.17 | |
MAINTAINER marc brown <marc@22walker.co.uk> v0.0.2 | |
# Set correct environment variables. | |
ENV HOME /root | |
ENV DEBIAN_FRONTEND noninteractive | |
ENV ASTERISKUSER asterisk | |
ENV ASTERISKVER 13 | |
ENV FREEPBXVER 13.0 | |
ENV ASTERISK_DB_PW pass123 | |
ENV MARIA_DB_PW pass123 | |
ENV AUTOBUILD_UNIXTIME 1418234402 | |
ENV FREEPBXPORT 8009 | |
# Use baseimage-docker's init system. | |
CMD ["/sbin/my_init"] | |
# Add VOLUME to allow backup of FREEPBX | |
VOLUME ["/etc/freepbxbackup"] | |
# open up ports needed by freepbx and asterisk 5060 tcp sip reg 80 tcp web port 10000-20000 udp rtp stream | |
EXPOSE 5060 | |
EXPOSE 80 | |
EXPOSE $FREEPBXPORT | |
EXPOSE 10000-20000/udp | |
# Add start.sh | |
ADD start.sh /root/ | |
#Install packages that are needed | |
RUN apt-get update && apt-get install -y build-essential linux-headers-generic apache2 mysql-server\ | |
mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox\ | |
libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3\ | |
libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev\ | |
libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev\ | |
libspandsp-dev libmyodbc libjansson-dev wget libgtk2.0-dev | |
# Pear install | |
#RUN pear install Console_Getopt \ | |
RUN pear uninstall db 1>/dev/null \ | |
&& pear install db-1.7.14 1>/dev/null | |
# add asterisk user | |
RUN groupadd -r $ASTERISKUSER \ | |
&& useradd -r -g $ASTERISKUSER $ASTERISKUSER \ | |
&& mkdir /var/lib/asterisk \ | |
&& chown $ASTERISKUSER:$ASTERISKUSER /var/lib/asterisk \ | |
&& usermod --home /var/lib/asterisk $ASTERISKUSER \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& apt-get purge -y | |
# Build pj project and Build jansson | |
#WORKDIR /temp/src/ | |
#RUN git clone https://github.com/asterisk/pjproject.git 1>/dev/null \ | |
# && git clone https://github.com/akheron/jansson.git 1>/dev/null \ | |
# && cd /temp/src/pjproject \ | |
# && ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr 1>/dev/null \ | |
# && make dep 1>/dev/null \ | |
# && make 1>/dev/null \ | |
# && make install 1>/dev/null \ | |
# && cd /temp/src/jansson \ | |
# && autoreconf -i 1>/dev/null \ | |
# && ./configure 1>/dev/null \ | |
# && make 1>/dev/null \ | |
# && make install 1>/dev/null \ | |
# Download asterisk. | |
# Currently Certified Asterisk 13.1. | |
WORKDIR /usr/src | |
RUN curl -sf -o asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz \ | |
&& mkdir asterisk \ | |
&& tar -xzf /usr/src/asterisk.tar.gz -C /usr/src/asterisk --strip-components=1 \ | |
&& rm asterisk.tar.gz \ | |
&& cd asterisk \ | |
&& ./configure \ | |
# && contrib/scripts/get_mp3_source.sh \ | |
&& make menuselect.makeopts \ | |
# && sed -i "s/format_mp3//" menuselect.makeopts \ | |
&& sed -i "s/BUILD_NATIVE//" menuselect.makeopts \ | |
&& make \ | |
&& make install \ | |
&& make config \ | |
&& ldconfig \ | |
&& update-rc.d -f asterisk remove \ | |
&& rm -r /usr/src/asterisk | |
#COPY conf/asterisk.conf /etc/asterisk/asterisk.conf | |
# Setup Permissions | |
RUN chown $ASTERISKUSER. /var/run/asterisk \ | |
&& chown -R $ASTERISKUSER. /etc/asterisk \ | |
&& chown -R $ASTERISKUSER. /var/lib/asterisk \ | |
&& chown -R $ASTERISKUSER. /var/log/asterisk \ | |
&& chown -R $ASTERISKUSER. /var/spool/asterisk \ | |
&& chown -R $ASTERISKUSER. /usr/lib/asterisk \ | |
&& chown $ASTERISKUSER:$ASTERISKUSER /etc/freepbxbackup \ | |
&& rm -rf /var/www/html \ | |
#mod to apache | |
#Setup mysql | |
&& sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini \ | |
&& cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig \ | |
&& sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf \ | |
&& sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf \ | |
&& service apache2 restart 1>/dev/null | |
RUN add-apt-repository ppa:ondrej/php -y \ | |
&& apt-get update && apt-get install php5.6 php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-xml php-pear -y --force-yes \ | |
&& update-alternatives --set php /usr/bin/php5.6 | |
ADD odbcinst.ini /etc/odbcinst.ini | |
ADD odbc.ini /etc/odbc.ini | |
WORKDIR /usr/src | |
RUN wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-$FREEPBXVER-latest.tgz 1>/dev/null 2>/dev/null \ | |
&& tar vxfz freepbx-$FREEPBXVER-latest.tgz freepbx 1>/dev/null \ | |
&& rm -f freepbx-$FREEPBXVER-latest.tgz 1>/dev/null | |
RUN /etc/init.d/mysql start 1>/dev/null \ | |
&& ./freepbx/start_asterisk start 1>/dev/null \ | |
# && ./freepbx/install -n 1>/dev/null \ | |
# && chown -R $ASTERISKUSER. /var/lib/asterisk/bin/retrieve_conf 1>/dev/null | |
#clean up | |
RUN apt-get purge -y \ | |
&& apt-get --yes autoremove \ | |
&& apt-get clean all \ | |
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* | |
CMD bash -C '/root/start.sh';'bash' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment