pkg/kamailio/alpine_docker: Added docker packaging scripts
[sip-router] / pkg / kamailio / alpine_docker / README.md
1 About
2 -----
3
4 Container designed to run on host, bridge and swarm network.
5 Size of container decreased to 50MB (23MB compressed)
6 Significantly increased security - removed all libs except libc, busybox, tcpdump, dumpcap, kamailio and dependent libs.
7 Docker container is created useing Alpine linux packaging
8
9 Used environment variables
10 --------------------------
11
12 1. ```SHM_MEMORY``` - amount of shared memory to allocate for the running Kamailio server (in Mb), default value 64Mb;
13 2. ```PKG_MEMORY``` - amount of per-process (package) memory to allocate for Kamailio (in Mb), default value 8Mb
14
15 Usage container
16 ---------------
17
18 ```sh
19 docker run --net=host --name kamailio \
20            -v /etc/kamailio/:/etc/kamailio \
21            kamailio/kamailio
22 ```
23
24 systemd unit file
25 -----------------
26
27 You can use this systemd unit files on your docker host.
28 Unit file can be placed to ```/etc/systemd/system/kamailio-docker.service``` and enabled by commands
29 ```sh
30 systemd start kamailio-docker.service
31 systemd enable kamailio-docker.service
32 ```
33
34 host network
35 ============
36
37 ```sh
38 $ cat /etc/systemd/system/kamailio-docker.service
39 [Unit]
40 Description=kamailio Container
41 After=docker.service network-online.target
42 Requires=docker.service
43
44
45 [Service]
46 Restart=always
47 TimeoutStartSec=0
48 #One ExecStart/ExecStop line to prevent hitting bugs in certain systemd versions
49 ExecStart=/bin/sh -c 'docker rm -f kamailio; \
50           docker run -t --net=host --name kamailio \
51                  -v /etc/kamailio/:/etc/kamailio \
52                  kamailio/kamailio'
53 ExecStop=-/bin/sh -c '/usr/bin/docker stop kamailio; \
54           /usr/bin/docker rm -f kamailio;'
55
56 [Install]
57 WantedBy=multi-user.target
58 ```
59
60 default bridge network
61 ======================
62 ```sh
63 [Unit]
64 Description=kamailio Container
65 After=docker.service network-online.target
66 Requires=docker.service
67
68
69 [Service]
70 Restart=always
71 TimeoutStartSec=0
72 #One ExecStart/ExecStop line to prevent hitting bugs in certain systemd versions
73 ExecStart=/bin/sh -c 'docker rm -f kamailio; \
74           docker run -t --network bridge --name kamailio \
75                  -p 5060:5060/udp -p 5060:5060 \
76                  -v /etc/kamailio/:/etc/kamailio \
77                  kamailio/kamailio'
78
79 ExecStop=-/bin/sh -c '/usr/bin/docker stop kamailio; \
80           /usr/bin/docker rm -f kamailio;'
81
82 [Install]
83 WantedBy=multi-user.target
84 ```
85
86 .bashrc file
87 ------------
88 To simplify kamailio managment you can add alias for ```kamctl``` to ```.bashrc``` file as example bellow.
89 ```sh
90 alias kamctl='docker exec -i -t kamailio /usr/sbin/kamctl'
91 ```