make repository great again ;)

This commit is contained in:
Andrius Kairiukstis
2022-02-21 23:08:00 +01:00
parent d5e426d765
commit 20944d3071
48 changed files with 542 additions and 719 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1 @@
github: [andrius]

4
.gitignore vendored
View File

@@ -1 +1,3 @@
/test/bats
/tests/bats
/temp
/tmp

View File

@@ -6,8 +6,12 @@ IMAGE_NAME := andrius/asterisk
X86_IMAGES := \
alpine/edge:edge \
alpine/latest:latest \
alpine/glibc:glibc_latest,alpine_glibc-16.x,glibc-16.x,alpine_glibc-16.3.0,glibc-16.3.0 \
alpine/3.11:3.11-16.6.2,16.x \
alpine/glibc:glibc_latest,alpine_glibc-18.x,glibc-18.x,alpine_glibc-18.2.2,glibc-18.2.2 \
alpine/3.15:3.15-18.2.2,18.x \
alpine/3.14:3.14-18.2.2 \
alpine/3.13:3.13-18.2.1 \
alpine/3.12:3.12-16.16.1,16.x \
alpine/3.11:3.11-16.6.2 \
alpine/3.10:3.10-16.3.0 \
alpine/3.9:3.9-15.7.4,15.x \
alpine/3.8:3.8-15.6.2 \
@@ -18,11 +22,10 @@ X86_IMAGES := \
alpine/3.3:3.3-13.17.2 \
alpine/3.2:3.2-13.3.2 \
alpine/3.1:3.1-13.3.2 \
alpine/2.7:2.7-11.25.1,11.x \
alpine/2.6:2.6-11.6.1 \
debian/17-current:17-current \
debian/18-current:18-current \
debian/17.9.4:17.9.4 \
debian/16-current:16-current \
debian/16-certified:16-certified,16.3-cert \
debian/16-certified:16-certified,16.8-cert \
debian/13-current:13-current \
debian/13-certified:13-certified,13.21-cert \
debian/15.7.4:15.7.4 \
@@ -255,7 +258,7 @@ endif
test: deps.bats
DOCKERFILE=$(DOCKERFILE) IMAGE=$(IMAGE_NAME):$(VERSION) \
./test/bats/bin/bats --pretty ./test/asterisk.bats
./tests/bats/bin/bats -t ./tests/asterisk.bats
@@ -264,18 +267,18 @@ test: deps.bats
# Usage:
# make deps.bats [BATS_VER=]
BATS_VER ?= 1.2.1
BATS_VER ?= 1.5.0
deps.bats:
ifeq ($(wildcard $(PWD)/test/bats),)
mkdir -p $(PWD)/test/bats
ifeq ($(wildcard $(PWD)/tests/bats),)
mkdir -p $(PWD)/tests/bats
wget https://github.com/bats-core/bats-core/archive/v$(BATS_VER).tar.gz \
-O $(PWD)/test/bats/bats.tar.gz
tar -xzf $(PWD)/test/bats/bats.tar.gz -C $(PWD)/test/bats
$(PWD)/test/bats/bats-core-$(BATS_VER)/install.sh $(PWD)/test/bats
rm -rf $(PWD)/test/bats/bats.tar.gz \
$(PWD)/test/bats/bats-core-$(BATS_VER) \
$(PWD)/test/bats/share
-O $(PWD)/tests/bats/bats.tar.gz
tar -xzf $(PWD)/tests/bats/bats.tar.gz -C $(PWD)/tests/bats
$(PWD)/tests/bats/bats-core-$(BATS_VER)/install.sh $(PWD)/tests/bats
rm -rf $(PWD)/tests/bats/bats.tar.gz \
$(PWD)/tests/bats/bats-core-$(BATS_VER) \
$(PWD)/tests/bats/share
endif

View File

@@ -3,20 +3,22 @@ FROM alpine:3.1
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 ast \
&& sleep 1 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk

View File

@@ -3,18 +3,20 @@ FROM alpine:3.10
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,18 +3,20 @@ FROM alpine:3.11
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {3.11-16.6.2,16.x}; do
for tag in {3.11-16.6.2}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

View File

@@ -1,21 +1,27 @@
# vim:set ft=dockerfile:
FROM alpine:2.6
FROM alpine:3.12
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
&& pkill -9 ast \
&& sleep 1 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {stretch-17-current}; do
for tag in {3.12-16.16.1,16.x}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

View File

@@ -1,21 +1,27 @@
# vim:set ft=dockerfile:
FROM alpine:2.7
FROM alpine:3.13
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
&& pkill -9 ast \
&& sleep 1 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {2.7-11.25.1,11.x}; do
for tag in {3.13-18.2.1}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

31
alpine/3.14/Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# vim:set ft=dockerfile:
FROM alpine:3.14
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk
ADD docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,27 @@
#!/bin/sh
# run as user asterisk by default
ASTERISK_USER=${ASTERISK_USER:-asterisk}
ASTERISK_GROUP=${ASTERISK_GROUP:-${ASTERISK_USER}}
if [ "$1" = "" ]; then
COMMAND="/usr/sbin/asterisk -T -W -U ${ASTERISK_USER} -p -vvvdddf"
else
COMMAND="$@"
fi
if [ "${ASTERISK_UID}" != "" ] && [ "${ASTERISK_GID}" != "" ]; then
# recreate user and group for asterisk
# if they've sent as env variables (i.e. to macth with host user to fix permissions for mounted folders
deluser asterisk && \
addgroup -g ${ASTERISK_GID} ${ASTERISK_GROUP} && \
adduser -D -H -u ${ASTERISK_UID} -G ${ASTERISK_GROUP} ${ASTERISK_USER} \
|| exit
fi
chown -R ${ASTERISK_USER}: /var/log/asterisk \
/var/lib/asterisk \
/var/run/asterisk \
/var/spool/asterisk; \
exec ${COMMAND}

View File

@@ -0,0 +1,15 @@
#!/bin/bash
# AUTOMATICALLY GENERATED
# DO NOT EDIT THIS FILE DIRECTLY, USE /post_push.erb
set -e
# Parse image name for repo name
tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {3.14-18.2.2}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

31
alpine/3.15/Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# vim:set ft=dockerfile:
FROM alpine:3.15
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk
ADD docker-entrypoint.sh /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

View File

@@ -0,0 +1,27 @@
#!/bin/sh
# run as user asterisk by default
ASTERISK_USER=${ASTERISK_USER:-asterisk}
ASTERISK_GROUP=${ASTERISK_GROUP:-${ASTERISK_USER}}
if [ "$1" = "" ]; then
COMMAND="/usr/sbin/asterisk -T -W -U ${ASTERISK_USER} -p -vvvdddf"
else
COMMAND="$@"
fi
if [ "${ASTERISK_UID}" != "" ] && [ "${ASTERISK_GID}" != "" ]; then
# recreate user and group for asterisk
# if they've sent as env variables (i.e. to macth with host user to fix permissions for mounted folders
deluser asterisk && \
addgroup -g ${ASTERISK_GID} ${ASTERISK_GROUP} && \
adduser -D -H -u ${ASTERISK_UID} -G ${ASTERISK_GROUP} ${ASTERISK_USER} \
|| exit
fi
chown -R ${ASTERISK_USER}: /var/log/asterisk \
/var/lib/asterisk \
/var/run/asterisk \
/var/spool/asterisk; \
exec ${COMMAND}

View File

@@ -0,0 +1,15 @@
#!/bin/bash
# AUTOMATICALLY GENERATED
# DO NOT EDIT THIS FILE DIRECTLY, USE /post_push.erb
set -e
# Parse image name for repo name
tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {3.15-18.2.2,18.x}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

View File

@@ -3,20 +3,22 @@ FROM alpine:3.2
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 ast \
&& sleep 1 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
&& rm -rf /var/cache/apk/* \
/tmp/* \
/var/tmp/*
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk

View File

@@ -3,18 +3,20 @@ FROM alpine:3.3
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,18 +3,20 @@ FROM alpine:3.4
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,18 +3,20 @@ FROM alpine:3.5
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,18 +3,20 @@ FROM alpine:3.6
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,18 +3,20 @@ FROM alpine:3.7
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& rm -rf /usr/lib/asterisk/modules/*pjsip* \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,17 +3,20 @@ FROM alpine:3.8
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,17 +3,20 @@ FROM alpine:3.9
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,17 +3,20 @@ FROM alpine:edge
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,17 +3,20 @@ FROM frolvlad/alpine-glibc
LABEL maintainer="Andrius Kairiukstis <k@andrius.mobi>"
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {glibc_latest,alpine_glibc-16.x,glibc-16.x,alpine_glibc-16.3.0,glibc-16.3.0}; do
for tag in {glibc_latest,alpine_glibc-18.x,glibc-18.x,alpine_glibc-18.2.2,glibc-18.2.2}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

View File

@@ -3,17 +3,20 @@ FROM alpine:latest
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN apk add --update \
RUN apk add --update --no-cache --quiet \
asterisk \
asterisk-sample-config \
&& asterisk -U asterisk \
&& sleep 5 \
>/dev/null \
&& asterisk -U asterisk &>/dev/null \
&& sleep 5s \
&& [ "$(asterisk -rx "core show channeltypes" | grep PJSIP)" != "" ] && : \
|| rm -rf /usr/lib/asterisk/modules/*pj* \
&& pkill -9 asterisk \
&& pkill -9 astcanary \
&& sleep 2 \
&& sleep 1s \
&& rm -rf /var/run/asterisk/* \
&& mkdir -p /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk/fax \
&& chown -R asterisk: /var/spool/asterisk \
&& truncate -s 0 /var/log/asterisk/messages \
/var/log/asterisk/queue_log \
&& rm -rf /var/cache/apk/* \

View File

@@ -3,7 +3,7 @@ FROM debian:buster-slim
LABEL maintainer="Andrius Kairiukstis <k@andrius.mobi>"
ENV ASTERISK_VERSION asterisk-certified-13.21-current
ENV ASTERISK_VERSION asterisk-certified-13.21-cert6
ENV OPUS_CODEC asterisk-13.0/x86-64/codec_opus-13.0_current-x86_64
COPY build-asterisk.sh /

View File

@@ -1,145 +0,0 @@
FROM centos:6
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN yum -y install gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel openssl-devel \
newt-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel sqlite-devel curl bison supervisor \
&& mkdir /tmp/asterisk \
&& curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
&& tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
&& cd /tmp/asterisk \
&& ./configure --libdir=/usr/lib64 \
&& make menuselect \
&& menuselect/menuselect \
--disable-all \
--disable-category MENUSELECT_ADDONS \
--disable-category MENUSELECT_APPS \
--disable-category MENUSELECT_BRIDGES \
--disable-category MENUSELECT_CDR \
--disable-category MENUSELECT_CEL \
--disable-category MENUSELECT_CHANNELS \
--enable-category MENUSELECT_CODECS \
--enable-category MENUSELECT_FORMATS \
--disable-category MENUSELECT_FUNCS \
--disable-category MENUSELECT_PBX \
--disable-category MENUSELECT_RES \
--disable-category MENUSELECT_TESTS \
--disable-category MENUSELECT_UTILS \
--disable-category MENUSELECT_AGIS \
--disable-category MENUSELECT_EMBED \
--enable-category MENUSELECT_CORE_SOUNDS \
--enable-category MENUSELECT_MOH \
--enable-category MENUSELECT_EXTRA_SOUNDS \
--disable-category MENUSELECT_TESTS \
--enable-category MENUSELECT_OPTS_app_voicemail \
--enable func_module \
--enable LOADABLE_MODULES \
--enable FILE_STORAGE \
--disable codec_dahdi \
--enable app_dial \
--enable app_exec \
--enable app_originate \
--enable app_verbose \
--enable chan_sip \
--enable pbx_config \
--enable res_agi \
--enable res_convert \
--enable res_musiconhold \
--enable res_timing_timerfd \
--disable BUILD_NATIVE \
menuselect.makeopts \
&& make config \
&& make \
&& make install \
&& mkdir -p /var/lib/asterisk/phoneprov \
&& make samples \
&& make dist-clean \
&& sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
&& cd .. \
&& rm /tmp/asterisk.tar.gz \
&& rm -rf /tmp/asterisk \
&& yum -y clean all \
&& rm -rf /var/cache/yum/*
# RUN yum -y update \
# && yum -y install epel-release \
# && yum -y install kernel-headers gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel sqlite sqlite-devel \
# mysql-devel openssl-devel newt-devel kernel-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel \
# curl pcre-devel bison mysql-devel ngrep tmux \
# && mkdir /tmp/asterisk \
# && curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
# && tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
# && cd /tmp/asterisk \
# && ./configure --libdir=/usr/lib64 \
# && make menuselect \
# && menuselect/menuselect \
# --disable-category MENUSELECT_ADDONS \
# --disable-category MENUSELECT_APPS \
# --disable-category MENUSELECT_BRIDGES \
# --disable-category MENUSELECT_CDR \
# --disable-category MENUSELECT_CEL \
# --disable-category MENUSELECT_CHANNELS \
# --enable-category MENUSELECT_CODECS \
# --enable-category MENUSELECT_FORMATS \
# --disable-category MENUSELECT_FUNCS \
# --disable-category MENUSELECT_PBX \
# --disable-category MENUSELECT_RES \
# --disable-category MENUSELECT_TESTS \
# --disable-category MENUSELECT_OPTS_app_voicemail \
# --disable-category MENUSELECT_UTILS \
# --disable-category MENUSELECT_AGIS \
# --disable-category MENUSELECT_EMBED \
# --disable-category MENUSELECT_CORE_SOUNDS \
# --disable-category MENUSELECT_MOH \
# --disable-category MENUSELECT_EXTRA_SOUNDS \
# --enable app_controlplayback \
# --enable app_dial \
# --enable app_exec \
# --enable app_originate \
# --enable app_queue \
# --enable app_record \
# --enable app_senddtmf \
# --enable app_stasis \
# --enable app_verbose \
# --enable app_waituntil \
# --enable chan_sip \
# --enable pbx_config \
# --enable pbx_realtime \
# --enable res_agi \
# --enable res_ari \
# --enable res_ari_channels \
# --enable res_ari_events \
# --enable res_ari_playbacks \
# --enable res_ari_recordings \
# --enable res_ari_sounds \
# --enable res_ari_device_states \
# --enable res_realtime \
# --enable res_rtp_asterisk \
# --enable res_rtp_multicast \
# --enable res_stasis \
# --enable res_stasis_answer \
# --enable res_stasis_device_state \
# --enable res_stasis_playback \
# --enable res_stasis_recording \
# --enable res_stun_monitor \
# --enable res_timing_timerfd \
# --enable func_callcompletion \
# --enable func_callerid \
# --disable BUILD_NATIVE \
# menuselect.makeopts \
# && make config \
# && make \
# && make install \
# && mkdir -p /var/lib/asterisk/phoneprov \
# && make samples \
# && make dist-clean \
# && sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
# && cd .. \
# && rm /tmp/asterisk.tar.gz \
# && rm -rf /tmp/asterisk \
# && yum -y clean all \
# && rm -rf /var/cache/yum/*
#
# CMD asterisk -fvvvvv

View File

@@ -1,145 +0,0 @@
FROM centos:6
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN yum -y install gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel openssl-devel \
newt-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel sqlite-devel curl bison supervisor \
&& mkdir /tmp/asterisk \
&& curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
&& tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
&& cd /tmp/asterisk \
&& ./configure --libdir=/usr/lib64 \
&& make menuselect \
&& menuselect/menuselect \
--disable-all \
--disable-category MENUSELECT_ADDONS \
--disable-category MENUSELECT_APPS \
--disable-category MENUSELECT_BRIDGES \
--disable-category MENUSELECT_CDR \
--disable-category MENUSELECT_CEL \
--disable-category MENUSELECT_CHANNELS \
--enable-category MENUSELECT_CODECS \
--enable-category MENUSELECT_FORMATS \
--disable-category MENUSELECT_FUNCS \
--disable-category MENUSELECT_PBX \
--disable-category MENUSELECT_RES \
--disable-category MENUSELECT_TESTS \
--disable-category MENUSELECT_UTILS \
--disable-category MENUSELECT_AGIS \
--disable-category MENUSELECT_EMBED \
--enable-category MENUSELECT_CORE_SOUNDS \
--enable-category MENUSELECT_MOH \
--enable-category MENUSELECT_EXTRA_SOUNDS \
--disable-category MENUSELECT_TESTS \
--enable-category MENUSELECT_OPTS_app_voicemail \
--enable func_module \
--enable LOADABLE_MODULES \
--enable FILE_STORAGE \
--disable codec_dahdi \
--enable app_dial \
--enable app_exec \
--enable app_originate \
--enable app_verbose \
--enable chan_sip \
--enable pbx_config \
--enable res_agi \
--enable res_convert \
--enable res_musiconhold \
--enable res_timing_timerfd \
--disable BUILD_NATIVE \
menuselect.makeopts \
&& make config \
&& make \
&& make install \
&& mkdir -p /var/lib/asterisk/phoneprov \
&& make samples \
&& make dist-clean \
&& sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
&& cd .. \
&& rm /tmp/asterisk.tar.gz \
&& rm -rf /tmp/asterisk \
&& yum -y clean all \
&& rm -rf /var/cache/yum/*
# RUN yum -y update \
# && yum -y install epel-release \
# && yum -y install kernel-headers gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel sqlite sqlite-devel \
# mysql-devel openssl-devel newt-devel kernel-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel \
# curl pcre-devel bison mysql-devel ngrep tmux \
# && mkdir /tmp/asterisk \
# && curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
# && tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
# && cd /tmp/asterisk \
# && ./configure --libdir=/usr/lib64 \
# && make menuselect \
# && menuselect/menuselect \
# --disable-category MENUSELECT_ADDONS \
# --disable-category MENUSELECT_APPS \
# --disable-category MENUSELECT_BRIDGES \
# --disable-category MENUSELECT_CDR \
# --disable-category MENUSELECT_CEL \
# --disable-category MENUSELECT_CHANNELS \
# --enable-category MENUSELECT_CODECS \
# --enable-category MENUSELECT_FORMATS \
# --disable-category MENUSELECT_FUNCS \
# --disable-category MENUSELECT_PBX \
# --disable-category MENUSELECT_RES \
# --disable-category MENUSELECT_TESTS \
# --disable-category MENUSELECT_OPTS_app_voicemail \
# --disable-category MENUSELECT_UTILS \
# --disable-category MENUSELECT_AGIS \
# --disable-category MENUSELECT_EMBED \
# --disable-category MENUSELECT_CORE_SOUNDS \
# --disable-category MENUSELECT_MOH \
# --disable-category MENUSELECT_EXTRA_SOUNDS \
# --enable app_controlplayback \
# --enable app_dial \
# --enable app_exec \
# --enable app_originate \
# --enable app_queue \
# --enable app_record \
# --enable app_senddtmf \
# --enable app_stasis \
# --enable app_verbose \
# --enable app_waituntil \
# --enable chan_sip \
# --enable pbx_config \
# --enable pbx_realtime \
# --enable res_agi \
# --enable res_ari \
# --enable res_ari_channels \
# --enable res_ari_events \
# --enable res_ari_playbacks \
# --enable res_ari_recordings \
# --enable res_ari_sounds \
# --enable res_ari_device_states \
# --enable res_realtime \
# --enable res_rtp_asterisk \
# --enable res_rtp_multicast \
# --enable res_stasis \
# --enable res_stasis_answer \
# --enable res_stasis_device_state \
# --enable res_stasis_playback \
# --enable res_stasis_recording \
# --enable res_stun_monitor \
# --enable res_timing_timerfd \
# --enable func_callcompletion \
# --enable func_callerid \
# --disable BUILD_NATIVE \
# menuselect.makeopts \
# && make config \
# && make \
# && make install \
# && mkdir -p /var/lib/asterisk/phoneprov \
# && make samples \
# && make dist-clean \
# && sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
# && cd .. \
# && rm /tmp/asterisk.tar.gz \
# && rm -rf /tmp/asterisk \
# && yum -y clean all \
# && rm -rf /var/cache/yum/*
#
# CMD asterisk -fvvvvv

View File

@@ -3,7 +3,7 @@ FROM debian:buster-slim
LABEL maintainer="Andrius Kairiukstis <k@andrius.mobi>"
ENV ASTERISK_VERSION asterisk-certified-16.3-current
ENV ASTERISK_VERSION asterisk-certified-16.8-current
ENV OPUS_CODEC asterisk-16.0/x86-64/codec_opus-16.0_current-x86_64
COPY build-asterisk.sh /

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {16-certified,16.3-cert}; do
for tag in {16-certified,16.8-cert}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

View File

@@ -1,145 +0,0 @@
FROM centos:6
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN yum -y install gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel openssl-devel \
newt-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel sqlite-devel curl bison supervisor \
&& mkdir /tmp/asterisk \
&& curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
&& tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
&& cd /tmp/asterisk \
&& ./configure --libdir=/usr/lib64 \
&& make menuselect \
&& menuselect/menuselect \
--disable-all \
--disable-category MENUSELECT_ADDONS \
--disable-category MENUSELECT_APPS \
--disable-category MENUSELECT_BRIDGES \
--disable-category MENUSELECT_CDR \
--disable-category MENUSELECT_CEL \
--disable-category MENUSELECT_CHANNELS \
--enable-category MENUSELECT_CODECS \
--enable-category MENUSELECT_FORMATS \
--disable-category MENUSELECT_FUNCS \
--disable-category MENUSELECT_PBX \
--disable-category MENUSELECT_RES \
--disable-category MENUSELECT_TESTS \
--disable-category MENUSELECT_UTILS \
--disable-category MENUSELECT_AGIS \
--disable-category MENUSELECT_EMBED \
--enable-category MENUSELECT_CORE_SOUNDS \
--enable-category MENUSELECT_MOH \
--enable-category MENUSELECT_EXTRA_SOUNDS \
--disable-category MENUSELECT_TESTS \
--enable-category MENUSELECT_OPTS_app_voicemail \
--enable func_module \
--enable LOADABLE_MODULES \
--enable FILE_STORAGE \
--disable codec_dahdi \
--enable app_dial \
--enable app_exec \
--enable app_originate \
--enable app_verbose \
--enable chan_sip \
--enable pbx_config \
--enable res_agi \
--enable res_convert \
--enable res_musiconhold \
--enable res_timing_timerfd \
--disable BUILD_NATIVE \
menuselect.makeopts \
&& make config \
&& make \
&& make install \
&& mkdir -p /var/lib/asterisk/phoneprov \
&& make samples \
&& make dist-clean \
&& sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
&& cd .. \
&& rm /tmp/asterisk.tar.gz \
&& rm -rf /tmp/asterisk \
&& yum -y clean all \
&& rm -rf /var/cache/yum/*
# RUN yum -y update \
# && yum -y install epel-release \
# && yum -y install kernel-headers gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel sqlite sqlite-devel \
# mysql-devel openssl-devel newt-devel kernel-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel \
# curl pcre-devel bison mysql-devel ngrep tmux \
# && mkdir /tmp/asterisk \
# && curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
# && tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
# && cd /tmp/asterisk \
# && ./configure --libdir=/usr/lib64 \
# && make menuselect \
# && menuselect/menuselect \
# --disable-category MENUSELECT_ADDONS \
# --disable-category MENUSELECT_APPS \
# --disable-category MENUSELECT_BRIDGES \
# --disable-category MENUSELECT_CDR \
# --disable-category MENUSELECT_CEL \
# --disable-category MENUSELECT_CHANNELS \
# --enable-category MENUSELECT_CODECS \
# --enable-category MENUSELECT_FORMATS \
# --disable-category MENUSELECT_FUNCS \
# --disable-category MENUSELECT_PBX \
# --disable-category MENUSELECT_RES \
# --disable-category MENUSELECT_TESTS \
# --disable-category MENUSELECT_OPTS_app_voicemail \
# --disable-category MENUSELECT_UTILS \
# --disable-category MENUSELECT_AGIS \
# --disable-category MENUSELECT_EMBED \
# --disable-category MENUSELECT_CORE_SOUNDS \
# --disable-category MENUSELECT_MOH \
# --disable-category MENUSELECT_EXTRA_SOUNDS \
# --enable app_controlplayback \
# --enable app_dial \
# --enable app_exec \
# --enable app_originate \
# --enable app_queue \
# --enable app_record \
# --enable app_senddtmf \
# --enable app_stasis \
# --enable app_verbose \
# --enable app_waituntil \
# --enable chan_sip \
# --enable pbx_config \
# --enable pbx_realtime \
# --enable res_agi \
# --enable res_ari \
# --enable res_ari_channels \
# --enable res_ari_events \
# --enable res_ari_playbacks \
# --enable res_ari_recordings \
# --enable res_ari_sounds \
# --enable res_ari_device_states \
# --enable res_realtime \
# --enable res_rtp_asterisk \
# --enable res_rtp_multicast \
# --enable res_stasis \
# --enable res_stasis_answer \
# --enable res_stasis_device_state \
# --enable res_stasis_playback \
# --enable res_stasis_recording \
# --enable res_stun_monitor \
# --enable res_timing_timerfd \
# --enable func_callcompletion \
# --enable func_callerid \
# --disable BUILD_NATIVE \
# menuselect.makeopts \
# && make config \
# && make \
# && make install \
# && mkdir -p /var/lib/asterisk/phoneprov \
# && make samples \
# && make dist-clean \
# && sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
# && cd .. \
# && rm /tmp/asterisk.tar.gz \
# && rm -rf /tmp/asterisk \
# && yum -y clean all \
# && rm -rf /var/cache/yum/*
#
# CMD asterisk -fvvvvv

View File

@@ -1,145 +0,0 @@
FROM centos:6
MAINTAINER Andrius Kairiukstis <andrius@kairiukstis.com>
RUN yum -y install gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel openssl-devel \
newt-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel sqlite-devel curl bison supervisor \
&& mkdir /tmp/asterisk \
&& curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
&& tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
&& cd /tmp/asterisk \
&& ./configure --libdir=/usr/lib64 \
&& make menuselect \
&& menuselect/menuselect \
--disable-all \
--disable-category MENUSELECT_ADDONS \
--disable-category MENUSELECT_APPS \
--disable-category MENUSELECT_BRIDGES \
--disable-category MENUSELECT_CDR \
--disable-category MENUSELECT_CEL \
--disable-category MENUSELECT_CHANNELS \
--enable-category MENUSELECT_CODECS \
--enable-category MENUSELECT_FORMATS \
--disable-category MENUSELECT_FUNCS \
--disable-category MENUSELECT_PBX \
--disable-category MENUSELECT_RES \
--disable-category MENUSELECT_TESTS \
--disable-category MENUSELECT_UTILS \
--disable-category MENUSELECT_AGIS \
--disable-category MENUSELECT_EMBED \
--enable-category MENUSELECT_CORE_SOUNDS \
--enable-category MENUSELECT_MOH \
--enable-category MENUSELECT_EXTRA_SOUNDS \
--disable-category MENUSELECT_TESTS \
--enable-category MENUSELECT_OPTS_app_voicemail \
--enable func_module \
--enable LOADABLE_MODULES \
--enable FILE_STORAGE \
--disable codec_dahdi \
--enable app_dial \
--enable app_exec \
--enable app_originate \
--enable app_verbose \
--enable chan_sip \
--enable pbx_config \
--enable res_agi \
--enable res_convert \
--enable res_musiconhold \
--enable res_timing_timerfd \
--disable BUILD_NATIVE \
menuselect.makeopts \
&& make config \
&& make \
&& make install \
&& mkdir -p /var/lib/asterisk/phoneprov \
&& make samples \
&& make dist-clean \
&& sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
&& cd .. \
&& rm /tmp/asterisk.tar.gz \
&& rm -rf /tmp/asterisk \
&& yum -y clean all \
&& rm -rf /var/cache/yum/*
# RUN yum -y update \
# && yum -y install epel-release \
# && yum -y install kernel-headers gcc gcc-c++ cpp ncurses ncurses-devel libxml2 libxml2-devel sqlite sqlite-devel \
# mysql-devel openssl-devel newt-devel kernel-devel libuuid-devel net-snmp-devel xinetd tar libffi-devel \
# curl pcre-devel bison mysql-devel ngrep tmux \
# && mkdir /tmp/asterisk \
# && curl -sf -o /tmp/asterisk.tar.gz -L http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-11.6-current.tar.gz \
# && tar -xzf /tmp/asterisk.tar.gz -C /tmp/asterisk --strip-components=1 \
# && cd /tmp/asterisk \
# && ./configure --libdir=/usr/lib64 \
# && make menuselect \
# && menuselect/menuselect \
# --disable-category MENUSELECT_ADDONS \
# --disable-category MENUSELECT_APPS \
# --disable-category MENUSELECT_BRIDGES \
# --disable-category MENUSELECT_CDR \
# --disable-category MENUSELECT_CEL \
# --disable-category MENUSELECT_CHANNELS \
# --enable-category MENUSELECT_CODECS \
# --enable-category MENUSELECT_FORMATS \
# --disable-category MENUSELECT_FUNCS \
# --disable-category MENUSELECT_PBX \
# --disable-category MENUSELECT_RES \
# --disable-category MENUSELECT_TESTS \
# --disable-category MENUSELECT_OPTS_app_voicemail \
# --disable-category MENUSELECT_UTILS \
# --disable-category MENUSELECT_AGIS \
# --disable-category MENUSELECT_EMBED \
# --disable-category MENUSELECT_CORE_SOUNDS \
# --disable-category MENUSELECT_MOH \
# --disable-category MENUSELECT_EXTRA_SOUNDS \
# --enable app_controlplayback \
# --enable app_dial \
# --enable app_exec \
# --enable app_originate \
# --enable app_queue \
# --enable app_record \
# --enable app_senddtmf \
# --enable app_stasis \
# --enable app_verbose \
# --enable app_waituntil \
# --enable chan_sip \
# --enable pbx_config \
# --enable pbx_realtime \
# --enable res_agi \
# --enable res_ari \
# --enable res_ari_channels \
# --enable res_ari_events \
# --enable res_ari_playbacks \
# --enable res_ari_recordings \
# --enable res_ari_sounds \
# --enable res_ari_device_states \
# --enable res_realtime \
# --enable res_rtp_asterisk \
# --enable res_rtp_multicast \
# --enable res_stasis \
# --enable res_stasis_answer \
# --enable res_stasis_device_state \
# --enable res_stasis_playback \
# --enable res_stasis_recording \
# --enable res_stun_monitor \
# --enable res_timing_timerfd \
# --enable func_callcompletion \
# --enable func_callerid \
# --disable BUILD_NATIVE \
# menuselect.makeopts \
# && make config \
# && make \
# && make install \
# && mkdir -p /var/lib/asterisk/phoneprov \
# && make samples \
# && make dist-clean \
# && sed -i -e 's/# MAXFILES=/MAXFILES=/' /usr/sbin/safe_asterisk \
# && cd .. \
# && rm /tmp/asterisk.tar.gz \
# && rm -rf /tmp/asterisk \
# && yum -y clean all \
# && rm -rf /var/cache/yum/*
#
# CMD asterisk -fvvvvv

View File

@@ -3,7 +3,7 @@ FROM debian:buster-slim
LABEL maintainer="Andrius Kairiukstis <k@andrius.mobi>"
ENV ASTERISK_VERSION 17-current
ENV ASTERISK_VERSION 17.9.4
ENV OPUS_CODEC asterisk-17.0/x86-64/codec_opus-17.0_current-x86_64
COPY build-asterisk.sh /

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {2.6-11.6.1}; do
for tag in {17.9.4}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

17
debian/18-current/Dockerfile vendored Normal file
View File

@@ -0,0 +1,17 @@
# vim:set ft=dockerfile:
FROM debian:bullseye-slim
LABEL maintainer="Andrius Kairiukstis <k@andrius.mobi>"
ENV ASTERISK_VERSION 18-current
ENV OPUS_CODEC asterisk-18.0/x86-64/codec_opus-18.0_current-x86_64
COPY build-asterisk.sh /
RUN /build-asterisk.sh
EXPOSE 5060/udp 5060/tcp
VOLUME /var/lib/asterisk/sounds /var/lib/asterisk/keys /var/lib/asterisk/phoneprov /var/spool/asterisk /var/log/asterisk
COPY docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["/usr/sbin/asterisk", "-vvvdddf", "-T", "-W", "-U", "asterisk", "-p"]

142
debian/18-current/build-asterisk.sh vendored Executable file
View File

@@ -0,0 +1,142 @@
#!/bin/bash
PROGNAME=$(basename $0)
if test -z ${ASTERISK_VERSION}; then
echo "${PROGNAME}: ASTERISK_VERSION required" >&2
exit 1
fi
set -ueo pipefail
useradd --system asterisk
DEBIAN_FRONTEND=noninteractive \
apt-get update -qq
DEBIAN_FRONTEND=noninteractive \
apt-get install --yes -qq --no-install-recommends --no-install-suggests \
autoconf \
binutils-dev \
build-essential \
ca-certificates \
curl \
file \
libcurl4-openssl-dev \
libedit-dev \
libgsm1-dev \
libogg-dev \
libpopt-dev \
libresample1-dev \
libspandsp-dev \
libspeex-dev \
libspeexdsp-dev \
libsqlite3-dev \
libsrtp2-dev \
libssl-dev \
libvorbis-dev \
libxml2-dev \
libxslt1-dev \
odbcinst \
portaudio19-dev \
procps \
unixodbc \
unixodbc-dev \
uuid \
uuid-dev \
xmlstarlet \
> /dev/null
DEBIAN_FRONTEND=noninteractive \
apt-get purge --yes -qq --auto-remove > /dev/null
rm -rf /var/lib/apt/lists/*
mkdir -p /usr/src/asterisk
cd /usr/src/asterisk
( \
curl -sL http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-${ASTERISK_VERSION}.tar.gz | tar --strip-components 1 -xz || \
curl -sL http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-${ASTERISK_VERSION}.tar.gz | tar --strip-components 1 -xz || \
curl -sL http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-${ASTERISK_VERSION}.tar.gz | tar --strip-components 1 -xz \
) &>/dev/null
# 1.5 jobs per core works out okay
: ${JOBS:=$(( $(nproc) + $(nproc) / 2 ))}
./configure --with-resample \
--with-pjproject-bundled \
--with-jansson-bundled > /dev/null
make menuselect/menuselect menuselect-tree menuselect.makeopts
# disable BUILD_NATIVE to avoid platform issues
menuselect/menuselect --disable BUILD_NATIVE menuselect.makeopts
# enable good things
menuselect/menuselect --enable BETTER_BACKTRACES menuselect.makeopts
# enable ooh323
menuselect/menuselect --enable chan_ooh323 menuselect.makeopts
# codecs
# menuselect/menuselect --enable codec_opus menuselect.makeopts
# menuselect/menuselect --enable codec_silk menuselect.makeopts
# # download more sounds
# for i in CORE-SOUNDS-EN MOH-OPSOUND EXTRA-SOUNDS-EN; do
# for j in ULAW ALAW G722 GSM SLN16; do
# menuselect/menuselect --enable $i-$j menuselect.makeopts
# done
# done
# we don't need any sounds in docker, they will be mounted as volume
menuselect/menuselect --disable-category MENUSELECT_CORE_SOUNDS menuselect.makeopts
menuselect/menuselect --disable-category MENUSELECT_MOH menuselect.makeopts
menuselect/menuselect --disable-category MENUSELECT_EXTRA_SOUNDS menuselect.makeopts
make -j ${JOBS} all > /dev/null || make -j ${JOBS} all
make install > /dev/null
# copy default configs
# cp /usr/src/asterisk/configs/basic-pbx/*.conf /etc/asterisk/
make samples > /dev/null
# set runuser and rungroup
sed -i -E 's/^;(run)(user|group)/\1\2/' /etc/asterisk/asterisk.conf
# Install opus, for some reason menuselect option above does not working
mkdir -p /usr/src/codecs/opus
cd /usr/src/codecs/opus
curl -sL http://downloads.digium.com/pub/telephony/codec_opus/${OPUS_CODEC}.tar.gz | tar --strip-components 1 -xz
cp *.so /usr/lib/asterisk/modules/
cp codec_opus_config-en_US.xml /var/lib/asterisk/documentation/
mkdir -p /etc/asterisk/ \
/var/spool/asterisk/fax
chown -R asterisk:asterisk /etc/asterisk \
/var/*/asterisk \
/usr/*/asterisk
chmod -R 750 /var/spool/asterisk
cd /
rm -rf /usr/src/asterisk \
/usr/src/codecs
DEVPKGS="$(dpkg -l | grep '\-dev' | awk '{print $2}' | xargs)"
DEBIAN_FRONTEND=noninteractive apt-get --yes -qq purge \
autoconf \
build-essential \
bzip2 \
cpp \
m4 \
make \
patch \
perl \
perl-modules \
pkg-config \
xz-utils \
${DEVPKGS} \
> /dev/null
rm -rf /var/lib/apt/lists/*
exec rm -f /build-asterisk.sh

24
debian/18-current/docker-entrypoint.sh vendored Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/sh
# run as user asterisk by default
ASTERISK_USER=${ASTERISK_USER:-asterisk}
if [ "$1" = "" ]; then
COMMAND="/usr/sbin/asterisk -T -W -U ${ASTERISK_USER} -p -vvvdddf"
else
COMMAND="$@"
fi
if [ "${ASTERISK_UID}" != "" ] && [ "${ASTERISK_GID}" != "" ]; then
# recreate user and group for asterisk
# if they've sent as env variables (i.e. to macth with host user to fix permissions for mounted folders
deluser asterisk && \
adduser --gecos "" --no-create-home --uid ${ASTERISK_UID} --disabled-password ${ASTERISK_USER} || exit
chown -R ${ASTERISK_UID}:${ASTERISK_UID} /etc/asterisk \
/var/*/asterisk \
/usr/*/asterisk
fi
exec ${COMMAND}

View File

@@ -9,7 +9,7 @@ tagStart=$(expr index "$IMAGE_NAME" :)
repoName=${IMAGE_NAME:0:tagStart-1}
# Tag and push image for each additional tag
for tag in {17-current}; do
for tag in {18-current}; do
docker tag $IMAGE_NAME ${repoName}:${tag}
docker push ${repoName}:${tag}
done

View File

@@ -1,11 +0,0 @@
#!/usr/bin/env bats
@test "asterisk is installed" {
run docker run -ti --rm $IMAGE asterisk -V
[ "$status" -eq 0 ]
}
@test "asterisk runs ok" {
run docker run -ti --rm $IMAGE sh -c 'asterisk; sleep 5; asterisk -rx "core show version"'
[ "$status" -eq 0 ]
}

34
tests/asterisk.bats Normal file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env bats
@test "asterisk is installed" {
run docker run -ti --rm $IMAGE asterisk -V 2>&1 >&3
EXPECTED_VERSION="$(echo "$VERSION" | awk -F '-' '{print $NF}')"
CONTAINER_VERSION="$(echo "$output" | awk '{print $NF}')"
echo "# docker image: $IMAGE" >&3
echo "# expected version: $EXPECTED_VERSION" >&3
echo "# running version: $CONTAINER_VERSION" >&3
[ "$status" -eq 0 ]
}
# @test "asterisk runs ok" {
# CONTAINER_NAME="$(date +%s | sha256sum | base64 | head -c 32 ; echo)"
# docker run --rm --detach --name $CONTAINER_NAME $IMAGE
# sleep 2s
# run docker exec -ti $CONTAINER_NAME asterisk -V 2>&1 >&3
# docker stop $CONTAINER_NAME
# EXPECTED_VERSION="$(echo "$VERSION" | awk -F '-' '{print $NF}')"
# CONTAINER_VERSION="$(echo "$output" | awk '{print $NF}')"
# echo "# docker image: $IMAGE" >&3
# echo "# expected version: $EXPECTED_VERSION" >&3
# echo "# running version: $CONTAINER_VERSION" >&3
# [ "$status" -eq 0 ]
# if [[ "$EXPECTED_VERSION" != "edge" && "$EXPECTED_VERSION" != "latest" && ! "$EXPECTED_VERSION" =~ glibc ]]; then
# [[ "$VERSION" =~ "${output}" ]]
# fi
# }