本文是以docker为例,以ubuntu 16.04做基础镜像

kengine 1.0.0 用supervisor来管理启动


先放下目录结构图:

kb--里面放的是kbengine的编译后的引擎以及demo

参考案例:https://github.com/Yenole/kbengine-docker/blob/master/Dockerfile

不过他这个写的我没实现成功

一、Dockerfile文件

FROM ubuntu:16.04
LABEL maintainer="116.com"
# 设置工作目录
WORKDIR /
# 更新并安装环境
RUN apt update
RUN apt install libmysqlclient-dev -y #数据库管理器(DBMgr)会用到,不然这个进程起不了,无法连接数据库
RUN apt install mysql-client -y
#解压安装引擎
COPY kb /
# 添加demo
RUN useradd kbe #安装supervisord #让supervisord启动在前端,这样不会down掉
RUN apt install supervisor -y
RUN chmod /etc/supervisor/supervisord.conf
COPY supervisord.conf /etc/supervisor/supervisord.conf
# 映射端口
EXPOSE
EXPOSE
EXPOSE
CMD ["/usr/bin/supervisord","-n","-c","/etc/supervisor/supervisord.conf"]

二.supervisord.conf文件

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod= ; sockef file mode (default ) [supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) ; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket ; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves. [include]
files = /etc/supervisor/conf.d/*.conf
[program:kbe2]
user=kbe
environment=uid="1000",KBE_ROOT="/kbengine",KBE_RES_PATH="$KBE_ROOT/assets/:$KBE_ROOT/assets/scripts/:$KBE_ROOT/assets/res/",KBE_BIN_PATH="$KBE_ROOT/kbe/bin/server"
directory=/kbengine/assets/
command=/bin/sh start_server.sh
autostart=true
autorestart=true
[program:django]
directory=/kbengine/kbe/tools/server/webconsole/
command=/bin/sh run_server.sh
autostart=true
autorestart=true

三、构建镜像

docker build -t kbengine:v1 .

四、注意事项

1.提先要把数据库准备好,建好库已经用户密码。

2.环境变量问题

Kbengine游戏引擎-【5】用Dockerfile打包镜像kbengine的更多相关文章

  1. # 通过 DockerFile 打包镜像

    在介绍 Docker 具体的操作前,先简要复习下 Docker 的架构,这样可以更好地帮助我们理解 Docker 中的各个命令. 首先我们一直对 Docker 这个叫法就有些误解,Docker 其实指 ...

  2. Kbengine游戏引擎-【4】demo-kbengine_unity3d_demo 在容器docker上安装测试

    git地址:https://github.com/kbengine/kbengine_unity3d_demo Demo中文地址:https://github.com/kbengine/kbengin ...

  3. Kbengine游戏引擎-【2】kbengine引擎服务端目录结构分析

    |- kbengine (KBE_ROOT 根目录) |- demo (游戏例子工程的根目录) |- res (工程的所有资源) |- spaces (通常存放游戏场景相关的资源,例如Navmesh) ...

  4. Kbengine游戏引擎-【1】kbengine安装

    本文主要介绍如何在Linux上安装 官网环境要求:Centos >= 5.x, Debian >= 5.x GCC版本: >= 4.4.x 官网链接 本文的安装环境介绍:Centos ...

  5. Docker Dockerfile 定制镜像(转)

    转自: https://yeasy.gitbooks.io/docker_practice/ 及 https://blog.csdn.net/wo18237095579/article/details ...

  6. 【2D游戏引擎】WIP反思

    WIP(Working In Progress)是我初学游戏引擎开发时候开发的一个2D游戏引擎,当时计划为它实现类似Unity一样的编辑器,具有和Unity相似的工作流,但是由于水平不够,走了很多弯路 ...

  7. Docker Dockerfile 定制镜像

    使用 Dockerfile 定制镜像  镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么无法重复的问题 ...

  8. Docker用Dockerfile定制镜像

    用Dockerfile定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那之前提示的无法重复的问题 ...

  9. 开源免费的HTML5游戏引擎

    青瓷引擎的成长 青瓷引擎自2015年4月项目启动开始,7月首次亮相2015年ChinaJoy,便得到业界的极大关注,随后开启限量测试,收到数百个开发者团队的试用申请及反馈,期间经历了18个内测版本,完 ...

随机推荐

  1. flutter主题颜色

    主题色 右下角的FloatingActionButton的颜色就是默认取值MaterialColor, 默认是蓝色的,如果修改成primarySwatch,就会变成这个颜色值. 一.primarySw ...

  2. MySQL间隙锁问题

    间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间. 最近用户反馈说系统老是出现insert时,等待超时了,最后发现是ins ...

  3. vue常用知识点

    vue中图片路径写法 <img :src="avatorSrc" alt=""> <img :src="avatorSrc2&quo ...

  4. 这些JVM命令配置参数你知道吗?

    JVM是多数开发人员视为理所当然的Java功能和性能背后的重负荷机器.然而,我们很少有人能理解JVM是如何进行工作的—像任务分配和垃圾收集.转动线程.打开和关闭文件.中断和/或JIT编译Java字节码 ...

  5. 3.Bacula Client安装配置

    1.   Bacula Client安装配置 1.1.   linux客户端安装 1.1.1.  安装依赖包 yum install libacl libacl-devel 1.1.2.  Clien ...

  6. 【2017-06-02】Linq高级查询,实现分页组合查询。

    1.以XXX开头 2.以XXX结尾 3.模糊查询 4.求个数 5.求最大值 6.求最小值 7.求平均值 8.求和 9.升序 10.降序 11.分页 Skip()跳过多少条 Take()取多少条 12. ...

  7. python函数大全

    1.range函数 可创建一个整数列表,用于for循环中 格式为:range(start,stop[,step]) start:计数从start开始,默认从0开始 stop:计数从stop结束,但不包 ...

  8. YOLO---Darknet下使用YOLO的常用命令

    Darknet下使用YOLO的常用命令 整理了一下,随手记一下. 在终端里,直接运行时Yolo的Darknet的各项命令,/home/wp/darknet/cfg/coco.data文件,使用原件:= ...

  9. Linux基础使用

    Linux中,日志所在的位置: /var/log/messages     系统默认的日志 /var/log/secure         记录用户的登录信息 查看日志的方法有很多 :head     ...

  10. C10K问题和多进程模型

    收录编辑来自马哥教育相关课程 内核空间的相关程序在调度用户空间里的进程的时候,也占用了cpu资源...... nginx可以作为两种类型的反向代理 http 和smtp(mail) C10K问题, 当 ...