【好玩的经典游戏】Docker环境下部署双人网页小游戏

一、项目介绍

1.1 项目简介

flatris:Flatris是一个最近从头开始重新设计的项目,它已经发展成一个具有UI和服务器组件的多人游戏。Flatris是一个快速节奏的两人在线网页游戏。在这个游戏中,两个玩家将同时进行操作,竞争谁能够更快地消除下落的方块。这个游戏的UI经过重新设计,充满了现代感和极简主义的风格。它具有直观的控件和友好的用户界面,使玩家能够轻松地理解和操作游戏。

1.2 项目特点

  • 快节奏的游戏体验:Flatris是一个快节奏的游戏,玩家需要迅速思考和反应,以在游戏中取得胜利。

  • 多人游戏:Flatris是一个多人在线游戏,可以与其他玩家一同竞技。玩家可以与好友或其他在线玩家进行对战。

  • 新的界面设计:游戏界面经过重新设计,使其更加现代化和直观。玩家可以更容易地理解和操作游戏。

  • 服务器组件:Flatris具有服务器组件,这意味着游戏可以在互联网上进行多人游戏。玩家可以与世界各地的其他玩家一起玩耍。

  • 用户界面改进:新的用户界面使得游戏更加易于使用和导航。玩家可以轻松找到自己需要的功能和设置。

  • 更多功能和选项:Flatris提供了更多的功能和选项,如排行榜、成就系统等。

二、本次实践介绍

二、本地环境介绍

2.1 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本
jeven192.168.3.166centos 7.620.10.17

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Flatris双人网页小游戏。

三、本地环境检查

3.1 安装Docker环境

本次实践需要提前安装Docker环境,如果未安装,可以使用以下一键安装脚本部署Docker环境。

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
  • Docker镜像加速配置
echo '{ "registry-mirrors": ["https://docker.mirrors.sjtug.sjtu.edu.cn"] }'   > /etc/docker/daemon.json 
systemctl daemon-reload  && systemctl restart docker
  • 开启路由转发
echo "net.ipv4.ip_forward=1" >>  /etc/sysctl.conf
systemctl restart network
sysctl net.ipv4.ip_forward
  • 在/etc/rc.d/rc.local文件中,写入以下内容:
vim /etc/rc.d/rc.local
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
chmod +x /etc/rc.d/rc.local

3.2 检查Docker服务状态

检查Docker服务是否正常运行,确保Docker正常运行。

[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2024-03-01 00:18:43 CST; 52s ago
     Docs: https://docs.docker.com
 Main PID: 11826 (dockerd)
    Tasks: 28
   Memory: 155.4M
   CGroup: /system.slice/docker.service
           ├─11826 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

3.3 检查Docker版本

检查Docker版本

[root@jeven ~]# docker -v
Docker version 20.10.17, build 100c701

3.4 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

[root@jeven ~]# docker compose version
Docker Compose version v2.6.0

四、构建容器镜像

4.1 下载项目源码

下载flatris项目源码

git clone https://github.com/ovidiuch/flatris.git

查看源码内容

[root@jeven flatris]# tree -L 2 ./
./
├── babel.config.js
├── docker-compose-visual.yml
├── docker-compose.yml
├── Dockerfile
├── flatris.gif
├── flatris.png
├── flow-typed
│   └── npm
├── jest.config.js
├── jest.framework-setup.js
├── jest-puppeteer.config.js
├── jest.setup.js
├── jest.visual.config.js
├── LICENSE
├── multiplayer.md
├── package.json
├── README.md
├── scripts
│   └── generate-game-media-queries.js
├── server
│   ├── api.js
│   ├── db.js
│   ├── env.js
│   ├── env-set-dev.js
│   ├── env-set-prod.js
│   ├── express.js
│   ├── firebase.js
│   ├── http.js
│   ├── next.js
│   ├── rollbar.js
│   ├── socket.js
│   ├── start-dev-client.js
│   ├── start-dev-server.js
│   └── start-prod.js
├── shared
│   ├── constants
│   ├── reducers
│   ├── types
│   └── utils
├── TODO.md
├── web
│   ├── actions
│   ├── babel.config.js
│   ├── components
│   ├── constants
│   ├── cosmos.config.json
│   ├── global.css
│   ├── __image_snapshots__
│   ├── mocks
│   ├── next.config.js
│   ├── pages
│   ├── reducers
│   ├── static
│   ├── store.js
│   ├── utils
│   └── visualtest.js
└── yarn.lock

19 directories, 38 files

4.2 查看Dockerfile文件

进入flatris源码目录

[root@jeven ~]# cd /data/docker/flatris/
[root@jeven flatris]# ls
babel.config.js            Dockerfile   flow-typed               jest-puppeteer.config.js  LICENSE         README.md  shared   yarn.lock
docker-compose-visual.yml  flatris.gif  jest.config.js           jest.setup.js             multiplayer.md  scripts    TODO.md
docker-compose.yml         flatris.png  jest.framework-setup.js  jest.visual.config.js     package.json    server     web

查看Dockerfile文件内容

[root@jeven flatris]# cat Dockerfile
FROM node:12
WORKDIR /usr/src/app
COPY package.json yarn.lock ./
RUN yarn --frozen-lockfile
COPY . ./
RUN yarn build
EXPOSE 3000
CMD yarn start

4.3 复制变量文件

将源码目录中的.env.example.js复制为.env.js文件

cp .env.example.js .env.js

4.4 构建镜像

执行以下命令,构建镜像。

docker compose build

在这里插入图片描述

如果不想构建或构建失败,可以使用我已经构建好的镜像。

swr.cn-north-4.myhuaweicloud.com/jeven/flatris:latest

五、部署网页小游戏

5.1 修改docker-compose.yml文件

本次实践部署使用docker compose方式,可以直接使用源码目录中的docker-compose.yml部署文件,需要按以上部署提前构建镜像。

[root@jeven flatris]# cat docker-compose.yml
version: '3'
services:
  flatris:
    build: .
    ports:
      - '3000:3000'
    restart: unless-stopped

如果不想构建镜像,可修改docker-compose.yml文件,直接快速部署。

version: '3'
services:
  flatris:
#    build: .
    image: swr.cn-north-4.myhuaweicloud.com/jeven/flatris:latest
    container_name: flatris
    ports:
      - '5200:3000'
    restart: unless-stopped

5.2 创建容器

执行docker compose up -d命令,创建flatris容器。

[root@jeven flatris]# docker compose up -d
[+] Running 2/2
 ⠿ Network flatris_default  Created                                                                                                             0.0s
 ⠿ Container flatris        Started                                                                                                             0.7s

5.3 查看容器状态

检查flatris容器状态,确保flatris容器正常启动。

[root@jeven flatris]# docker compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
flatris             "docker-entrypoint.s…"   flatris             running             0.0.0.0:5200->3000/tcp, :::5200->3000/tcp

5.4 查看容器日志

查看flatris容器运行日志,确保flatris服务正常启动。

[root@jeven flatris]# docker compose logs
flatris  | yarn run v1.22.17
flatris  | $ env-cmd babel-node server/start-prod.js
flatris  | Browserslist: caniuse-lite is outdated. Please run:
flatris  | npx browserslist@latest --update-db
flatris  | Firebase not configured
flatris  | > Ready on http://localhost:3000

六、访问游戏系统

6.1 访问游戏初始页

访问地址:http://192.168.3.166:5200,将IP替换为自己服务器IP地址,进入进flatris初始页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。

在这里插入图片描述

6.2 开始新游戏

点击“NEW GAME”,开始新游戏。

在这里插入图片描述

输入名称,自定义填写即可。

在这里插入图片描述
在这里插入图片描述

6.3 双人游戏

点击游戏右侧的“2P”,复制游戏链接。

在这里插入图片描述

在另一个浏览器或者电脑打开复制的链接,输入名字即可。

在这里插入图片描述

一直选择确认,点击“OK”。

在这里插入图片描述

选择加入游戏

在这里插入图片描述

开始双人网页小游戏,通过方向键:上下左右控制方块。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖有缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值