侧边栏壁纸
  • 累计撰写 22 篇文章
  • 累计创建 29 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

【好玩儿的Docker项目】80、90回忆杀,10分钟搭建复古中文 DOS 游戏,最多畅玩1898款!

胖虎
2024-05-17 / 0 评论 / 0 点赞 / 68 阅读 / 5633 字
温馨提示:
本文最后更新于 2024-05-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

1.前言

小学的时候,班上有几个同学家里比较富裕,爸爸妈妈给他们买了步步高电子词典,本来是学习的工具,但是有一天发现可以下载游戏,于是学习机就变成了游戏机。

我当时没有这个机器,只能看着他们玩,还记得又一次把作业给同学抄,然后借他的步步高玩了金庸群侠传,非常上头。后来还玩了伏魔记、魔塔……

一晃眼,现在都工作好多年了……

今天就让我们重温一下儿时的游戏吧。

2.项目展示

直接看图:

image image image image image image image

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

image

注意这边下载默认是下载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

直接看图:

image image image

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.常见问题

  • 部分游戏没有按键说明,可能需要自己在键盘尝试一下,一般就是shiftaltenter空格commandzx这几个键,大家自己试试看。

参考资料:

https://github.com/rwv/chinese-dos-games/ https://blog.laoda.de/archives/docker-compose-install-chinese-dos-games

0

评论区