dockerfile 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. FROM ubuntu:20.04 AS build
  2. ARG MODEL
  3. #shell,rtmp,rtsp,rtsps,http,https,rtp
  4. EXPOSE 1935/tcp
  5. EXPOSE 554/tcp
  6. EXPOSE 80/tcp
  7. EXPOSE 443/tcp
  8. EXPOSE 10000/udp
  9. EXPOSE 10000/tcp
  10. EXPOSE 8000/udp
  11. EXPOSE 8000/tcp
  12. EXPOSE 9000/udp
  13. # ADD sources.list /etc/apt/sources.list
  14. RUN apt-get update && \
  15. DEBIAN_FRONTEND="noninteractive" \
  16. apt-get install -y --no-install-recommends \
  17. build-essential \
  18. cmake \
  19. git \
  20. curl \
  21. vim \
  22. wget \
  23. ca-certificates \
  24. tzdata \
  25. libssl-dev \
  26. libmysqlclient-dev \
  27. libx264-dev \
  28. libfaac-dev \
  29. gcc \
  30. g++ \
  31. libavcodec-dev libavutil-dev libswscale-dev libresample-dev \
  32. libsdl-dev libusrsctp-dev \
  33. gdb && \
  34. apt-get autoremove -y && \
  35. apt-get clean -y && \
  36. rm -rf /var/lib/apt/lists/*
  37. RUN mkdir -p /opt/media
  38. COPY . /opt/media/ZLMediaKit
  39. WORKDIR /opt/media/ZLMediaKit
  40. # 3rdpart init
  41. WORKDIR /opt/media/ZLMediaKit/3rdpart
  42. RUN wget https://github.com/cisco/libsrtp/archive/v2.3.0.tar.gz -O libsrtp-2.3.0.tar.gz && \
  43. tar xfv libsrtp-2.3.0.tar.gz && \
  44. mv libsrtp-2.3.0 libsrtp && \
  45. cd libsrtp && ./configure --enable-openssl && make -j $(nproc) && make install
  46. #RUN git submodule update --init --recursive && \
  47. RUN mkdir -p build release/linux/${MODEL}/
  48. WORKDIR /opt/media/ZLMediaKit/build
  49. RUN cmake -DCMAKE_BUILD_TYPE=${MODEL} -DENABLE_WEBRTC=true -DENABLE_FFMPEG=true -DENABLE_TESTS=false -DENABLE_API=false .. && \
  50. make -j $(nproc)
  51. FROM ubuntu:20.04
  52. ARG MODEL
  53. # ADD sources.list /etc/apt/sources.list
  54. RUN apt-get update && \
  55. DEBIAN_FRONTEND="noninteractive" \
  56. apt-get install -y --no-install-recommends \
  57. vim \
  58. wget \
  59. ca-certificates \
  60. tzdata \
  61. curl \
  62. libssl-dev \
  63. libx264-dev \
  64. libfaac-dev \
  65. ffmpeg \
  66. gcc \
  67. g++ \
  68. libavcodec-dev libavutil-dev libswscale-dev libresample-dev \
  69. libsdl-dev libusrsctp-dev \
  70. gdb && \
  71. apt-get autoremove -y && \
  72. apt-get clean -y && \
  73. rm -rf /var/lib/apt/lists/*
  74. ENV TZ=Asia/Shanghai
  75. RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime \
  76. && echo $TZ > /etc/timezone && \
  77. mkdir -p /opt/media/bin/www
  78. WORKDIR /opt/media/bin/
  79. COPY --from=build /opt/media/ZLMediaKit/release/linux/${MODEL}/MediaServer /opt/media/ZLMediaKit/default.pem /opt/media/bin/
  80. COPY --from=build /opt/media/ZLMediaKit/release/linux/${MODEL}/config.ini /opt/media/conf/
  81. COPY --from=build /opt/media/ZLMediaKit/www/ /opt/media/bin/www/
  82. ENV PATH /opt/media/bin:$PATH
  83. CMD ["./MediaServer","-s", "default.pem", "-c", "../conf/config.ini", "-l","0"]