Skip to content

Commit

Permalink
update dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
im-pingo committed Nov 29, 2021
1 parent 49a1a79 commit e65b577
Show file tree
Hide file tree
Showing 18 changed files with 1,235 additions and 21 deletions.
48 changes: 35 additions & 13 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,17 +1,39 @@
FROM ubuntu:18.04

FROM ubuntu:20.04 AS build
USER root
WORKDIR /home/
ENV DEBIAN_FRONTEND=noninteractive
RUN \
apt update && apt-get upgrade -y && \
apt-get install -y wget build-essential libtool libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev --fix-missing git gcc
COPY . /home/
RUN \
apt update && \
apt install -y --fix-missing git gcc libssl-dev && \
git clone --depth=1 https://github.com/im-pingo/pingos.git && \
(cd pingos && \
cd /home && \
chmod +x ./release.sh && \
./release.sh -i) && \
rm -rf pingos && \
apt autoclean && apt autoremove && \
rm -rf /var/lib/apt/lists/* && \
rm -rf /var/cache/apt/*
./release.sh -ir

RUN cp -rf /home/docker/conf/ /usr/local/pingos/
RUN cp -r /home/docker/cert/ /cert/

FROM ubuntu:20.04 AS prod

ARG RUN_PATH=/usr/local/pingos
ARG BUILD_PATH=/home

WORKDIR ${RUN_PATH}

ENV DEBIAN_FRONTEND=noninteractive
RUN apt update && apt-get upgrade -y && \
apt-get install -y supervisor ffmpeg openssl build-essential libtool libpcre3 libpcre3-dev zlib1g-dev libssl-dev

#RUN rm -f /etc/supervisor/supervisord.conf
ENV PATH=${PATH}:${RUN_PATH}/sbin
COPY --from=build ${RUN_PATH}/ ${RUN_PATH}/
COPY --from=build ${BUILD_PATH}/docker/cert/ /cert
COPY --from=build ${BUILD_PATH}/docker/supervisor/supervisord.conf /etc/supervisor/supervisord.conf
COPY --from=build ${BUILD_PATH}/docker/supervisor/pingos.conf /etc/supervisor/conf.d/pingos.conf
COPY --from=build ${BUILD_PATH}/docker/pingos-entrypoint.sh /usr/local/bin/pingos-entrypoint.sh

RUN chmod 777 /usr/local/bin/pingos-entrypoint.sh

WORKDIR /usr/local/pingos/
CMD [ "/usr/bin/supervisord" ]

CMD ["./sbin/nginx", "-g", "daemon off;"]
91 changes: 91 additions & 0 deletions docker/cert/fullchain.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
-----BEGIN CERTIFICATE-----
MIIFJTCCBA2gAwIBAgISBCERO8HDgarp3IQmnolT6MXnMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMTA5MDgwNzAzMTNaFw0yMTEyMDcwNzAzMTJaMBQxEjAQBgNVBAMT
CXBpbmdvcy5pbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO356zE8
exs7O+eK9lFxX456DhZQUn/m53NxCa/URbiKptq2VLAg2fPO8KiIVmVI6qBqRQCt
ut0qiwXGuYo6K7sMgsrfCUGr3qrqfjp57KT/gNcYLaDl36+EaZKy6LIFW97qEior
FUc5MoT+WsMB16RC82y2s0ep1HKd2lID+HgL0O9xJYY0mDwI/P2uvhsl8YpRQB0y
qE7T3eSI998/KFZtpMDCU8anc1Zcm1TSxLK5tIueXVzqZJW3Bt3LBTjqkuhBofOt
QKerwNdbg1xgW8RGxcgWhxy/T+QpWK9lvREcCtma1TtzHOWWayICSeBI/l1HosVL
nFfoFZuwIAEAXg8CAwEAAaOCAlEwggJNMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUE
FjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU
Frny85fTI6fWi9iMVV6IsS6Ni9gwHwYDVR0jBBgwFoAUFC6zF7dYVsuuUAlA5h+v
nYsUwsYwVQYIKwYBBQUHAQEESTBHMCEGCCsGAQUFBzABhhVodHRwOi8vcjMuby5s
ZW5jci5vcmcwIgYIKwYBBQUHMAKGFmh0dHA6Ly9yMy5pLmxlbmNyLm9yZy8wIQYD
VR0RBBowGIILKi5waW5nb3MuaW+CCXBpbmdvcy5pbzBMBgNVHSAERTBDMAgGBmeB
DAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3BzLmxl
dHNlbmNyeXB0Lm9yZzCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB2AESUZS6w7s6v
xEAH2Kj+KMDa5oK+2MsxtT/TM5a1toGoAAABe8Rur2IAAAQDAEcwRQIgOw4Ctu67
aMJRuGpVh+Wn3ETbpIjf7zYjzBtBo+4x/5ICIQDhL5z0Q3Tge4iAakzuw8IUw49t
PNGV54LR73yf+5M2hgB2APZclC/RdzAiFFQYCDCUVo7jTRMZM7/fDC8gC8xO8WTj
AAABe8Rur0gAAAQDAEcwRQIhAM0gyqYtd4fmGz+Ej1N9PET9cU2LNGJ2swhK7bHS
9QjqAiA5qhcn/+Btb+BjKq669YrUeWsCupgrZqwWJLItPxpjnTANBgkqhkiG9w0B
AQsFAAOCAQEAQSftgEq934RNZ2A2bdIdqZJKHN6TL942OFx1dmz27lRNj+YaAjsq
iVU39lzW6tAMnf/bvD64t/1zpq+6pNUJZV1uJ5nipJ1yzrm/ek/0V3Yjn/2xsWSM
IqimXg2ezRFrMMrIF7FBvg9oTZ/hPI0Ug31xbqtGXYyHtll9PY/2Vat+2SycfvIg
+nAy+ReMWTpebR65fYg5mcqkOF/hVmFxlEoKq2/Dw7QDKL/BVoIQmrezbTurUBzi
HcGAM42lZ5BtT09L/QaB3JeRMYoMjQRjsiGC4VeLjdI6aepQFPIPlV9FJXGbwkO1
Ow4wKdBx8vvDDQMztHC6sU1/0oC+ZAoKNA==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions docker/cert/privkey.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDt+esxPHsbOzvn
ivZRcV+Oeg4WUFJ/5udzcQmv1EW4iqbatlSwINnzzvCoiFZlSOqgakUArbrdKosF
xrmKOiu7DILK3wlBq96q6n46eeyk/4DXGC2g5d+vhGmSsuiyBVve6hIqKxVHOTKE
/lrDAdekQvNstrNHqdRyndpSA/h4C9DvcSWGNJg8CPz9rr4bJfGKUUAdMqhO093k
iPffPyhWbaTAwlPGp3NWXJtU0sSyubSLnl1c6mSVtwbdywU46pLoQaHzrUCnq8DX
W4NcYFvERsXIFoccv0/kKVivZb0RHArZmtU7cxzllmsiAkngSP5dR6LFS5xX6BWb
sCABAF4PAgMBAAECggEBANhtybOusLt0ZKfRHvG07VXztWofxNgj1O2NqWSq5nnO
R69z0ZOZXP86fm6YCBL3fMNFwtm6Js9MCMHJGScYfnsQBsegjpeWSt0ghIqEJm9t
G+0DRUQmrAfBog5T/gMhkosqUDjfk+uBnmuLtFnUDB2M8jw18NjFILzYyRx8FfZ9
71557cxXyuGEV05tGgsM7TqL8MsDr1JGAvf4ZgnE/8Gy9k9Dhs7UMUqGWKwyKtCf
TmvXY5nl5vA6QHjmd7cEWry9GXsgYU/b2wmSsYDfMGXPi4MLomcp6MpGRpDCam9C
Jp4XXEaC7nwyIrS/tCaBDDOpM1NFZNSyzK2R2uwEHTECgYEA/4JXtox6/xT+9+7c
q95XaGVgT/cBN0ao5psecD8oMVwt5PULlsu2MjgZ7iPmCw7XM6mM8BUZKei2BqGC
SCiegvxwMpbX9FAWYFiQCttTsnhdEP2umhK74Nvr0ihGizCqTpUqxNIc84hDtkIk
+hqvQ6xGd0V1Es4sfCLZejdjlNkCgYEA7m70G6dpU5EE+UpU4EWq7Ijr49Bbq1v+
XEb3YxhM54vtOS/R8WZ2FoVQYrZFR/wJXpcpn50IsCQ8E6px22btv1lobYThlIzS
A/FkpWKkPgkNMwz99th9XxRW3ObfTfoBkMQCrxKOybrIDqsEGL8jzOQVlIm3yueP
gA+Kyjx3mScCgYAlrlJDMKp+7djANbDDg/G+Cp1Oja3XOgt0ntG5WgcSaHa4Ok8w
OPCwrUddsFufq9ue2dVYHrRsUs5tYeo1vA/MX3Aodch5VkpGgSkVAM1yF4AaHl9e
h36/pY88mgX1RwMGvcbl6dqtK55YxZ5wZ/kK8OAffNXMJS24TOdnt71u2QKBgQCL
NrtOvjOwODc4Ot9Nxz+iNdvNOyWa6u6cAE+HS3Pzqe6LelFRamq+gX5K9HOFMTJj
SU1jRXQCLFXrgZRS70kXdWOUtoZjjsk8xh/mtK6DDhPn38kU7JhfAGgrOJ3fUH7D
gL60a9h1Dpqqfc25iTik8/Nps/NdBFD0C58Ur7OA9wKBgQCaumgYq5TaltHtIbsM
o1J7xIrhXAi++qly8Uh1u00YgaZNLLQueoBHqVDxKT35TrbpUKbM4eM8pD9XVmgG
QRCBRJrY7hsu7zEQzF+3nqRhPaZZ6C3NLqAlgPn3TKvv4fV9uP6VhubBzzI5pk6R
+TL78QWTDPIruhF1D1s8RNuWjA==
-----END PRIVATE KEY-----
153 changes: 153 additions & 0 deletions docker/conf/nginx-clip.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
user root;
daemon off;
master_process on;
worker_processes auto;
#worker_rlimit 4g;

#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log error;

worker_rlimit_nofile 102400;
worker_rlimit_core 2G;
working_directory /tmp/;

pid logs/nginx.pid;

events {
use epoll;
worker_connections 4096;
multi_listen unix:/tmp/http 80;
multi_listen unix:/tmp/https 443;
multi_listen unix:/tmp/rtmp 1935;

dynamic_refresh_interval 5s;
dynamic_domain_buckets 1001;
resolver 114.114.114.114 valid=10s;
resolver_timeout 30s;
}

#stream_zone buckets=1024 streams=4096;

#dynamic_conf conf/nginx_dynamic.conf 10;
#dynamic_log logs/dynamic.log info;

rtmp {
# log_format log_bandwidth '{"app":"$app","name":"$name","bitrate":$bitrate,"args":"$args","timestamp":$ntp,"ts":"$time_local","type":"$command","remoteAddr":"$remote_addr","announceIp":"39.101.194.173"}';
# access_log logs/bandwidth.log log_bandwidth trunc=5s;

server {
listen 1935 so_keepalive=2s:2s:3;
serverid edge;
out_queue 2048;
rtmp_auto_pull on;
rtmp_auto_pull_port unix:/tmp/rtmp;
timeout 5s;
idle_streams off;
max_message 6291456;

application * {
hls2 on;
mpegts_cache_time 90s;
hls2_fragment 2000ms;
hls2_max_fragment 3000ms;
hls2_playlist_length 6000ms;

live on;
wait_key on;
wait_video on;
cache_time 0s;
send_all on;
low_latency off;
fix_timestamp 0s;
# h265 codecid, default 12
hevc_codecid 12;
}
}
}

http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_X-Forwarded-For" "$http_X-Real-IP" "$host"';

access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#reset_server_name www.test1.com www.test2.com;
#gzip on;

server {
listen 80;
listen 443 ssl;
ssl_certificate /cert/fullchain.pem;
ssl_certificate_key /cert/privkey.pem;
chunked_transfer_encoding off;

location /rtmp_stat {
rtmp_stat all;
rtmp_stat_stylesheet /stat.xsl;
}

location /xstat {
rtmp_stat all;
}

location /sys_stat {
sys_stat;
}

location /proxy/ {
rewrite ^/proxy/(.*) /sys_stat break;
proxy_pass http://$1:;
}

location /bs {
broadcast unix:/tmp/http /proxy;
broadcast_rewrite_prefix "," [;
broadcast_suffix ];
return 200;
}

location ~ .mp4$ {
root html;
#mp4;
}

location /control {
rtmp_control all;
}

location /flv {
flv_live 1935;
add_header 'Access-Control-Allow-Origin' '*';
add_header "Access-Control-Allow-Credentials" "true";
add_header "Access-Control-Allow-Methods" "*";
add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token";
add_header "Access-Control-Expose-Headers" "*";
}

location /ts {
ts_live 1935 app=live;
expires -1;
add_header 'Access-Control-Allow-Origin' '*';
add_header "Access-Control-Allow-Credentials" "true";
add_header "Access-Control-Allow-Methods" "*";
add_header "Access-Control-Allow-Headers" "Content-Type,Access-Token";
add_header "Access-Control-Expose-Headers" "*";
}

location / {
chunked_transfer_encoding on;
root html/;
}
}
}
Loading

0 comments on commit e65b577

Please sign in to comment.