Skip to content

Instantly share code, notes, and snippets.

@nvpnathan
Created November 4, 2016 16:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save nvpnathan/0673deedba1c6554946b4a04b4421c8f to your computer and use it in GitHub Desktop.
Save nvpnathan/0673deedba1c6554946b4a04b4421c8f to your computer and use it in GitHub Desktop.
#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