前端:nginx
docker run -id -p 81:80
-v /root/docker/ioms/conf/nginx:/etc/nginx //配置文件映射
-v /root/docker/ioms/logs/:/var/log/nginx //日志
-v /root/docker/ioms/www/:/usr/share/nginx/html //html文件
--name ioms.frontend
nginx:latest
配置文件在这里:点击下载文件
后端:dotnet6
后端发布版本1
docker run
-id
-p 7000:5000
-v /root/ioms/publish:/app
--name ioms.backend
--log-opt max-size=10m //日志文件大小最大10M
--log-opt max-file=3//日志文件最多3个
admin.net.server:1.0
bash start.sh
Start.sh启动脚本文件说明
#!/bin/sh
# vim:sw=4:ts=4:et
cd app/;
dotnet Admin.NET.Web.Entry.dll --urls http://*.*:5000;
后端发布版本2
使用Dockerfile生成镜像
使用vs发布后,在publish文件夹里添加Dockerfile文件,内容如下
//asp.net6的运行时 暴露端口80
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
EXPOSE 80
//解决admin.net框架内导出excel需要用到libgdiplus的问题,就是要安装这个插件
RUN apt-get update -y
RUN apt-get install -y libgdiplus
RUN apt-get clean
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
//解决docker时区差8个小时的问题
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
//启动
COPY . .
ENTRYPOINT ["dotnet", "Admin.NET.Web.Entry.dll"]
//libgdiplus参考:https://blog.csdn.net/weixin_67510312/article/details/128612829
//时区问题参考:https://blog.csdn.net/smooth00/article/details/107058753
然后执行指令创建镜像:
docker build -t admin.net:1.0 .
然后根据镜像创建容器即可
docker run -id -p 7000:80 -v /root/docker/ioms/publish:/app --name ioms.backend admin.net:1.0
后端发布版本3
使用Dockerfile生成aspnet6的通用镜像
使用CMD来执行dotnet应用程序,使用动态传入的DLLNAME参数
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
EXPOSE 80
RUN apt-get update -y
RUN apt-get install -y libgdiplus
RUN apt-get clean
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
ENV DLLNAME="" #定义环境变量
COPY . .
CMD dotnet $DLLNAME #改用CMD来执行dotnet应用程序,使用动态传入的DLLNAME参数
运行容器
docker run -id -p 7000:80 \
-v /root/docker/ioms/publish:/app \
-e DLLNAME="AuthServer.dll" \ #运行容器时将dll名称传入
--name ioms.backend \
admin.net:1.0
后端发布版本4
使用ENTRYPOINT作为容器入口,使用CMD作为参数传入
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
EXPOSE 80
RUN apt-get update -y
RUN apt-get install -y libgdiplus
RUN apt-get clean
RUN ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo 'Asia/Shanghai' >/etc/timezone
COPY . .
ENTRYPOINT ["dotnet"]
CMD ["AuthServer.dll"]#CMD的参数会当做ENTRYPOINT的执行参数传入
CMD []#可以写值AuthServer.dll算是默认值,也可以为空
运行容器
docker run -id -p 53363:80 \
-v /home/abp.microservice/OpenIddict:/app \
--name abp.microservice.openiddict \
aspnet7:1.2 \
AuthServer.dll #传入参数
数据库:mariadb
docker run --name mariadb-prod -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/software_docker/mariadb_test/data:/var/lib/mysql -d mariadb:latest
docker容器管理器:portainer
docker run -d --name portainer -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /data/portainer_data:/data portainer/portainer-ce:latest
WS视频推流
rtsp视频流转flv 通过websocket推送给前端
docker run -id -p 8888:8888 -v /home/mes/admin.net/vedio:/home/express --name admin.net.vedio node:latest node /home/express/server.js
node服务文件在这里:点击下载文件
文章详细介绍了如何使用Docker部署前端Nginx服务器和后端Dotnet应用的不同版本,包括配置文件映射、端口映射、日志管理和环境变量设置。同时提到了数据库MariaDB的容器化部署以及Portainer容器管理器的使用。此外,还讨论了通过WebSocket将RTSP视频流转换为FLV并推送到前端的实现方法。



970

被折叠的 条评论
为什么被折叠?



