DOCKERFILE 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. FROM ubuntu:20.04 AS build
  2. # DEBIAN_FRONTEND这个环境变量,告知操作系统应该从哪儿获得用户输入。
  3. # 如果设置为”noninteractive”,你就可以直接运行命令,而无需向用户请求输入(所有操作都是非交互式的)。
  4. ARG DEBIAN_FRONTEND=noninteractive
  5. ENV TZ=Asia/Shanghai
  6. EXPOSE 18080/tcp
  7. EXPOSE 5060/tcp
  8. EXPOSE 5060/udp
  9. EXPOSE 6379/tcp
  10. EXPOSE 18081/tcp
  11. EXPOSE 80/tcp
  12. EXPOSE 1935/tcp
  13. EXPOSE 554/tcp
  14. EXPOSE 554/udp
  15. EXPOSE 30000-30500/tcp
  16. EXPOSE 30000-30500/udp
  17. ENV LC_ALL zh_CN.UTF-8
  18. # 使用了自己的settings.xml作为maven的源,加快打包速度
  19. RUN apt-get update && \
  20. DEBIAN_FRONTEND="noninteractive" && \
  21. apt-get install -y --no-install-recommends openjdk-11-jre git maven nodejs npm build-essential tcl language-pack-zh-hans \
  22. cmake curl vim ca-certificates tzdata libmysqlclient-dev redis-server libssl-dev libx264-dev libfaac-dev ffmpeg
  23. WORKDIR /home
  24. RUN git clone https://gitee.com/pan648540858/maven.git && \
  25. cp maven/settings.xml /usr/share/maven/conf/ && \
  26. git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git && \
  27. git clone https://gitee.com/pan648540858/wvp-pro-assist.git
  28. # 编译前端界面
  29. WORKDIR /home/wvp-GB28181/web_src
  30. RUN npm install && \
  31. npm run build && \
  32. mkdir -p /opt/wvp/config && \
  33. mkdir -p /opt/assist/config && \
  34. cp /home/wvp-GB28181/src/main/resources/application-dev.yml /opt/wvp/config/application.yml && \
  35. cp /home/wvp-pro-assist/src/main/resources/application-dev.yml /opt/assist/config/application.yml
  36. # wvp打包
  37. WORKDIR /home/wvp-GB28181
  38. RUN mvn compile && \
  39. mvn package && \
  40. cp /home/wvp-GB28181/target/wvp*.jar /opt/wvp/
  41. # wvp 录像管理打包
  42. WORKDIR /home/wvp-pro-assist
  43. RUN mvn compile && \
  44. mvn package && \
  45. cp /home/wvp-pro-assist/target/*.jar /opt/assist/
  46. # zlm打包
  47. WORKDIR /home
  48. RUN mkdir -p /opt/media && \
  49. git clone --depth=1 https://gitee.com/xia-chu/ZLMediaKit && \
  50. cd ZLMediaKit && git submodule update --init --recursive && \
  51. mkdir -p build release/linux/Release/ &&\
  52. cd build && \
  53. cmake -DCMAKE_BUILD_TYPE=Release .. && \
  54. make -j4 && \
  55. rm -rf ../release/linux/Release/config.ini && \
  56. cp -r ../release/linux/Release/* /opt/media && \
  57. mkdir -p /opt/media/www/record
  58. # 清理
  59. RUN rm -rf /home/wiki && \
  60. rm -rf /home/wvp-GB28181 && \
  61. apt-get autoremove -y git maven nodejs npm && \
  62. apt-get clean -y && \
  63. rm -rf /var/lib/apt/lists/*dic
  64. WORKDIR /opt/wvp
  65. RUN echo '#!/bin/bash' > run.sh && \
  66. echo 'echo ${WVP_IP}' >> run.sh && \
  67. echo 'echo ${WVP_CONFIG}' >> run.sh && \
  68. echo 'redis-server --daemonize yes --bind 0.0.0.0' >> run.sh && \
  69. echo 'cd /opt/assist' >> run.sh && \
  70. echo 'nohup java -jar *.jar --userSettings.record=/opt/media/www/record/ &' >> run.sh && \
  71. echo 'nohup /opt/media/MediaServer -d -m 3 &' >> run.sh && \
  72. echo 'cd /opt/wvp' >> run.sh && \
  73. echo 'if [${WVP_CONFIG}]; then' >> run.sh && \
  74. echo ' java -jar *.jar --spring.config.location=/opt/wvp/config/application.yml --media.record-assist-port=18081 ${WVP_CONFIG}' >> run.sh && \
  75. echo 'else' >> run.sh && \
  76. echo ' java -jar *.jar --spring.config.location=/opt/wvp/config/application.yml --media.record-assist-port=18081 --media.ip=127.0.0.1 --media.hook-ip=127.0.0.1 --media.sdp-ip=${WVP_IP} --sip.ip=${WVP_IP} --media.stream-ip=${WVP_IP}' >> run.sh && \
  77. echo 'fi' >> run.sh
  78. RUN chmod +x run.sh
  79. FROM ubuntu:20.04
  80. ARG DEBIAN_FRONTEND=noninteractive
  81. ENV TZ=Asia/Shanghai
  82. EXPOSE 18080/tcp
  83. EXPOSE 5060/tcp
  84. EXPOSE 5060/udp
  85. EXPOSE 6379/tcp
  86. EXPOSE 18081/tcp
  87. EXPOSE 80/tcp
  88. EXPOSE 1935/tcp
  89. EXPOSE 554/tcp
  90. EXPOSE 554/udp
  91. EXPOSE 30000-30500/tcp
  92. EXPOSE 30000-30500/udp
  93. ENV LC_ALL zh_CN.UTF-8
  94. RUN apt-get update && \
  95. DEBIAN_FRONTEND="noninteractive" && \
  96. apt-get install -y --no-install-recommends openjdk-11-jre tcl language-pack-zh-hans \
  97. ca-certificates tzdata libmysqlclient21 redis-server libssl1.1 libx264-155 libfaac0 ffmpeg && \
  98. apt-get autoremove -y && \
  99. apt-get clean -y && \
  100. rm -rf /var/lib/apt/lists/*dic
  101. WORKDIR /opt/wvp
  102. COPY --from=build /opt /opt
  103. CMD ["sh", "run.sh"]