当前位置: 首页 > news >正文

Docker Desktop 打包Unity WebGL 程序,在Docker 中运行Unity WebGL 程序

Docker Desktop 打包Unity WebGL 程序,在Docker 中运行Unity WebGL 程序

目录

  1. 环境准备
  2. Nginx配置
  3. 容器操作
  4. 镜像管理
  5. 常用命令

环境准备

前提条件

  • 已安装Unity并完成WebGL构建
  • 已安装Docker环境

验证Docker安装

# 检查Docker版本
docker --version# 测试基础功能
docker pull hello-world
docker run hello-world

获取Nginx镜像

#获取最新版本nginx
docker pull nginx#获取指定版本的ngixn
docker pull nginx:1.25.3      

拉取镜像下载中

下载完成


Nginx配置

目录结构准备

mkdir F:\DockerHostFiles\nginx_data\html
mkdir F:\DockerHostFiles\nginx_data\conf

目录结构2

目录结构

配置文件 (default.conf)

这里的配置很奇怪,只要有server块就行,有其他块会报错。

server {listen       7963;server_name  localhost;root   /usr/share/nginx/html;index  index.html index.htm;# 日志配置error_log  /var/log/nginx/error.log debug;access_log /var/log/nginx/access.log main;# 静态文件服务location / {try_files $uri $uri/ /index.html;gzip off;  # 禁用动态压缩# CORS配置add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';}# 预压缩文件处理location ~ \.gz$ {sendfile off;directio off;tcp_nopush off;gzip off;add_header 'Content-Encoding' 'gzip';# 按类型设置MIMElocation ~ \.js\.gz$ { types { application/javascript gz; } }location ~ \.wasm\.gz$ { types { application/wasm gz; } }location ~ \.data\.gz$ { default_type application/octet-stream; }}# 原始文件处理location ~ \.(js|wasm|data)$ {sendfile off;location ~ \.js$ { types { application/javascript js; } }location ~ \.wasm$ { types { application/wasm wasm; } }location ~ \.data$ { default_type application/octet-stream; }}# 错误页面error_page 404 /404.html;location = /404.html { internal; }
}

容器操作

启动Nginx容器

运行nginx并且设置卷映射,
这里映射的端口应该和ngixn中的端口一致,在主机的58231端口绑定到容器的7963端口上

docker run -d --name my-nginx docker运行容器名称为 my-nginx
-v F:\DockerHostFiles\nginx_data\html:/usr/share/nginx/html \绑定html路径
-v F:\DockerHostFiles\nginx_data\conf:/etc/nginx/conf.d \绑定conf路径
-p 58231:7963 \绑定端口主机端口58231 映射到docker的7963端口
nginx使用的镜像是 nginx
docker run -d --name my-nginx \-v F:\DockerHostFiles\nginx_data\html:/usr/share/nginx/html \-v F:\DockerHostFiles\nginx_data\conf:/etc/nginx/conf.d \-p 58231:7963 \nginx

镜像管理

提交容器为新镜像

-a 创作者名称
-m 日志信息
my-nginx 容器名称
my-nginx-unity-webgl-app 导出的新的镜像名称

命令内容
docker commit提交
-a作者名称
-m日志内容
my-nginx容器名称
my-nginx-unity-webgl-app保存的镜像名称
docker commit -a "wyh" -m "Unity WebGL应用镜像" my-nginx my-nginx-unity-webgl-app

这时候可以使用docker images 看到有一个新的镜像被添加到镜像列表

导出镜像

将指定的镜像保存到指定的路径中,路径应使用双引号包裹

docker save -o将文件保存输出
“M:\DockerHostFiles\outFiles\Nginx_outFiles\my-unity-webgl-app.tar”输出路径,包名
my-nginx-unity-webgl-app
docker save -o "M:\DockerHostFiles\outFiles\Nginx_outFiles\my-unity-webgl-app.tar" my-nginx-unity-webgl-app

导入镜像

将刚刚的镜像导入到docekr中,但是需要先将之前的镜像删除docker rmi my-nginx-unity-webgl-app

docker load -idocker 加载
“M:\DockerHostFiles\outFiles\Nginx_outFiles\my-unity-webgl-app.tar”被包的路径
docker load -i "M:\DockerHostFiles\outFiles\Nginx_outFiles\my-unity-webgl-app.tar"

验证镜像

docker images

常用命令参考

# 查看Docker系统信息
docker info# 查看版本信息
docker version# 查看运行中的容器
docker ps# 查看所有容器
docker ps -a# 重启容器
docker restart [容器名称/ID]# 启动已停止容器
docker start [容器名称/ID]# 停止容器
docker stop [容器名称/ID]# 执行容器内命令
# 在my-nginx 这个容器中执行nginx -s reload 命令
docker exec -it my-nginx nginx -s reload
http://www.lryc.cn/news/597485.html

相关文章:

  • SeaweedFS深度解析(二):从Master到Volume
  • 人工智能——Opencv图像色彩空间转换、灰度实验、图像二值化处理、仿射变化
  • AI项目实施落地实例
  • 直播一体机技术方案解析:基于RK3588S的硬件架构特性​
  • 如何加固Endpoint Central服务器的安全?(下)
  • 网络与信息安全有哪些岗位:(2)渗透测试工程师
  • JavaWeb_Servlet复习
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-6,(知识点:二极管,少子多子,扩散/漂移运动)
  • React Native + Expo 入坑指南:从核心概念到实战演练
  • LangChain面试内容整理-知识点29:LangChain与LlamaIndex等框架对比
  • 洛谷刷题7.23
  • Git 完全手册:从入门到团队协作实战(4)
  • 生命通道的智慧向导:Deepoc具身智能如何重塑医院导诊机器人的“仁心慧眼”
  • 沪银本周想法
  • Python 数据持久化存储:深入解析 JSON 与 Pickle 模块
  • 项目七.AI大模型部署
  • SCDN:网络安全新防线下的技术革新与安全效能
  • JS逆向基础( AES 解密密文WordArray和Uint8Array实战②)
  • iOS开发 Swift 速记5:高级运算符
  • 事务隔离级别和传播方式
  • 软件开发生命周期与模型解析:选择合适的开发方法
  • 什么是ARQ协议
  • 如何最简单、通俗地理解Python的numpy库?
  • C语言习题讲解-第五讲-循环编程练习等
  • Excel——设置打印的区域
  • CSS3文本阴影特效全攻略
  • 运营端账号管理设计指南:安全与效率的双重保障
  • 牛油果褐变的成因与食用安全
  • ElasticSearch基础数据管理详解
  • 同一个端口无法同时配置基于 server_name 的 HTTP(非加密)和 HTTPS(加密)