1.前言
小学的时候,班上有几个同学家里比较富裕,爸爸妈妈给他们买了步步高电子词典,本来是学习的工具,但是有一天发现可以下载游戏,于是学习机就变成了游戏机。
我当时没有这个机器,只能看着他们玩,还记得又一次把作业给同学抄,然后借他的步步高玩了金庸群侠传,非常上头。后来还玩了伏魔记、魔塔……
一晃眼,现在都工作好多年了……
今天就让我们重温一下儿时的游戏吧。
2.项目展示
直接看图:
3.特点及相关地址
- 支持docker一键部署
- 中文 DOS 游戏合集,目前共有 1898 款游戏
- 支持存档 咕咕的Demo:https://games.gugu.ovh/ GitHub官方仓库:https://github.com/rwv/chinese-dos-games
4.搭建方式
创建安装目录:
mkdir -p /data/docker_data/games
cd /data/docker_data/games
vim docker-compose.yml
这边有两种搭建方式,因为36G的游戏做成docker的镜像太大了,所以作者只是将40多个经典的DOS游戏封装到了docker的镜像里面,所以你的服务器如果硬盘不够大,可以直接用默认的方式安装。
version: '3.3'
services:
dosgame-web-docker:
container_name: dosgame
ports:
- '8090:262' #8090可以改成其他服务器没被占用的端口
# volumes:
# - '/data/docker_data/games/chinese-dos-games:/app/static/games'
image: 'oldiy/dosgame-web-docker:latest'
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。 如果你的服务器硬盘大于36G,那你可以尝试直接装1989款游戏。
version: '3.3'
services:
dosgame-web-docker:
container_name: dosgame
ports:
- '8090:262' #8090可以改成其他服务器没被占用的端口
volumes:
- '/data/docker_data/games/chinese-dos-games:/app/static/games'
image: 'oldiy/dosgame-web-docker:latest'
修改好之后,注意切换成英文输入法,然后按一下 esc,然后 :wq 保存退出。 然后在
cd /data/docker_data/games/
git clone https://github.com/rwv/chinese-dos-games.git
cd chinese-dos-games/
python3 download_data.py
注意这边下载默认是下载1989款游戏的,总共36G左右,如果你的服务器的下载带宽不大的话,可能需要非常非常久。这也是这边推荐大家用海外的服务器的原因,带宽普遍较大,比如Racknerd(注意选美西地区),下载是G口的速度,理论值在128M/s,下载起来相对较快。 如果出现:
-bash: git: command not found
输入:
yum install git -y
在重新运行:
git clone https://github.com/rwv/chinese-dos-games.git
即可。
如果出现:
-bash: python: command not found
说明服务器上没装python,你需要安装一个python
下载完成之后,你可以运行:
ls -l /root/data/docker_data/games/chinese-dos-games/bin | grep "^-" | wc -l
查看文件夹中的文件数量。不出意外应该显示1898
你也可以用:
du -sh /root/data/docker_data/games
计算文件夹的总大小,不出意外应该显示:
36G /root/data/docker_data/games
没什么问题的话,我们可以运行:
cd /data/docker_data/games # 来到 dockercompose 文件所在的文件夹下
docker-compose up -d
等待拉取镜像即可。
理论上,等出现绿色的done字样, 我们就可以输入 http://ip:8090 访问了。
5.反向代理
5.1利用Nginx Proxy Manager
直接看图:
5.2利用nginx
在nginx服务配置内增加下面的代码:
location / {
proxy_pass http://127.0.0.1:8090/; # 注意改成你实际使用的端口
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
此方法对 90% 的反向代理都能生效,然后就可以用域名来安装访问了。
6.使用教程
6.1更新games
一般应该不需要怎么更新,作者停更很久了,不过这边还是提供一下docker-compose安装的应用的基本更新方法。
cd /root/data/docker_data/games
docker-compose down
cp -r /root/data/docker_data/games /root/data/docker_data/games.archive # 万事先备份,以防万一
docker-compose pull
docker-compose up -d # 请不要使用 docker-compose stop 来停止容器,因为这么做需要额外的时间等待容器停止;docker-compose up -d 直接升级容器时会自动停止并立刻重建新的容器,完全没有必要浪费那些时间。
docker image prune # prune 命令用来删除不再使用的 docker 对象。删除所有未被 tag 标记和未被容器使用的镜像
利用 Docker 搭建的应用,更新非常容易~
6.2 卸载games
cd /root/data/docker_data/games
docker-compose down
cd ..
rm -rf /root/data/docker_data/games # 完全删除映射到本地的数据
可以卸载得很干净。
7.常见问题
- 部分游戏没有按键说明,可能需要自己在键盘尝试一下,一般就是
shift
、alt
、enter
、空格
、command
、z
、x
这几个键,大家自己试试看。
参考资料:
https://github.com/rwv/chinese-dos-games/ https://blog.laoda.de/archives/docker-compose-install-chinese-dos-games
评论区