粽叶飘香,端午安康!
本文是应网友
maijianbang
的要求写的,不过看起来代码有3
年没更新了,先就这样吧
什么是 Landlord ?
Landlord
是一款斗地主游戏,自带无脑出牌AI
。后端基于golang 1.12
+sqlite3
+go module
开发,前端采用Phaser
引擎。
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
官方没有提供镜像,需要我们自己来构建,老苏之前从来没构建过 golang
开发的应用,所以第一次的 Dockerfile
是👇这样的
原始的模板来自:https://docs.docker.com/language/golang/build-images/
# syntax=docker/dockerfile:1
FROM golang:1.16-buster AS build
LABEL maintainer=laosu<wbsu2003@gmail.com>
WORKDIR /app
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY . ./
RUN cd main && go build -o /landlord
EXPOSE 80
ENTRYPOINT ["/landlord"]
虽然跑起来了,但是没想到编译出来的镜像居然有 900
多兆,所以又搞了多阶段构建,最终构建的镜像只有 30
多兆,也许可以再小,不过应该无所谓了吧
# syntax=docker/dockerfile:1
##
## Build
##
FROM golang:1.16-buster AS build
LABEL maintainer=laosu<wbsu2003@gmail.com>
WORKDIR /app
COPY go.mod ./
COPY go.sum ./
RUN go mod download
COPY . ./
RUN cd main && go build -o /landlord
##
## Deploy
##
FROM gcr.io/distroless/base-debian10
WORKDIR /
COPY --from=build /landlord /landlord
COPY --from=build /app/conf /conf
COPY --from=build /app/db /db
COPY --from=build /app/static /static
COPY --from=build /app/templates /templates
EXPOSE 80
ENTRYPOINT ["/landlord"]
构建镜像和容器运行的基本命令如下👇
# 下载代码
git clone https://github.com/dwg255/landlord.git
# 或者加个代理
git clone https://ghproxy.com/github.com/dwg255/landlord.git
# 进入目录
cd landlord
将 Dockerfile 放到代码根目录
# 构建镜像
docker build -t wbsu2003/landlord:v1 .
# 发布镜像
docker push wbsu2003/landlord:v1
顺便提一句,老苏所有折腾过的
dockerfile
都上传到了Github
:https://github.com/wbsu2003/Dockerfile/ ,有兴趣的可以去看看
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 wbsu2003
,往下拉找到 wbsu2003/landlord
,版本选择 latest
。
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
5250 | 80 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 下载镜像
docker pull wbsu2003/landlord
# 运行容器
docker run -d \
--name landlord \
-p 5250:80 \
wbsu2003/landlord
运行
在浏览器中输入 http://群晖IP:5250
就能看到注册界面
注册成功之后
老苏选择了 挑战AI
至于 AI
的水平怎么样,老苏也不懂,因为就不会斗地主
参考文档
dwg255/landlord: 斗地主
地址:https://github.com/dwg255/landlord
mailgyc/doudizhu: html5 斗地主游戏
地址:https://github.com/mailgyc/doudizhu
Build your Go image | Docker Documentation
地址:https://docs.docker.com/language/golang/build-images/