dockerfile/README.md
2023-12-13 17:21:30 +08:00

4.3 KiB
Raw Blame History

Dockerfile 示例

Kiwix Server

ZIM 资源阅读器,可在线预览 ZIM 文档。运行 Kiwix Server 服务后即可通过浏览器访问 ZIM 文件。

官方网站:

目录说明:

  • standard 标准镜像构建目录
  • alpine 精简镜像构建目录
  • example 使用示例

构建说明:

  1. 进入指定目录standard 或 alpine

  2. 构建镜像

docker build --no-cache -t 镜像名称:镜像TAG .

示例:

  • 标准镜像(基于 openSUSE 15.5
docker build --no-cache -t hty1024/kiwix-serve:3.6.0 .
  • 精简镜像(基于 AlpineLinux 3.18.5
docker build --no-cache -t hty1024/kiwix-serve:3.6.0-alpine .

使用方式:

  1. 下载 ZIM 文件至主机

  2. 配置 ZIM 文件所属用户

将 ZIM 文件所属用户组及用户均修改为 1024,示例如下:

chown -R 1024.1024 ./data
  1. 运行 Docker 容器
  • 直接运行
docker run --name 容器名称 -dit -p 服务端口号:10080 -v ZIM文件目录:/data 镜像名称:镜像TAG

    示例:

docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0
docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0-alpine
  • Docker Compose 方式运行 请参考 example 目录内的 compose.yaml 文件

PaperMC Paper

Paper是基于Spigot的Minecraft游戏服务器旨在大大提高性能并提供更高级的功能和API。

官方网站:

目录说明:

  • alpine 精简镜像构建目录
  • example 使用示例

构建说明:

  1. 进入指定目录alpine

  2. 构建镜像

docker build --no-cache -t 镜像名称:镜像TAG .

示例:

  • 精简镜像(基于 Amazon Corretto 17.0.8
docker build --no-cache -t hty1024/papermc/paper:1.20.1-134-alpine .

使用方式:

  1. 创建相关目录(用于持久化相关数据)

创建 worldworld_netherworld_the_endconfigpluginslogs 目录,示例如下:

mkdir -pv {world,world_nether,world_the_end,config,plugins,logs}
  1. 下载并按需修改配置文件 server.propertiespaper-global.ymlpaper-world-defaults.yml (文件见 example 目录)

具体选项参考官方文档

  1. 阅读授权并修改 eula.txt 文件中 eula 的值为 true

  2. 配置相关文件的所属用户

将目录的所属用户组及用户均修改为 1024:

chown -R 1024.1024 world world_nether world_the_end config plugins logs server.properties eula.txt
  1. 运行容器前的目录结构示例如下
drwxr-xr-x 2 1024 1024    6 Aug 21 15:00 config
-rw-r--r-- 1 1024 1024  157 Aug 21 13:18 eula.txt
drwxr-xr-x 2 1024 1024    6 Aug 21 15:00 logs
drwxr-xr-x 2 1024 1024    6 Aug 21 15:00 plugins
-rw-r--r-- 1 1024 1024 1285 Aug 21 14:23 server.properties
drwxr-xr-x 2 1024 1024   23 Aug 21 15:03 world
drwxr-xr-x 2 1024 1024   23 Aug 21 15:03 world_nether
drwxr-xr-x 2 1024 1024   23 Aug 21 15:03 world_the_end
  • world Overworld目录
  • world_nether Nether目录
  • world_the_end End目录
  • config 配置文件目录
  • server.properties 服务端配置文件
  • eula.txt 授权校验文件
  • plugins 插件目录
  • logs 日志目录
  1. 运行 Docker 容器
  • 直接运行
docker run --name 容器名称 -dit -p 服务端口号:25565 -v world目录:/opt/papermc/world -v world_nether目录:/opt/papermc/world_nether -v world_the_end目录:/opt/papermc/world_the_end -v config目录:/opt/papermc/config -v plugins目录:/opt/papermc/plugins -v logs目录:/opt/papermc/logs 镜像名称:镜像TAG

示例:

docker run --name papermc-server -dit -p 25565:25565 -v ./world:/opt/papermc/world -v ./world_nether:/opt/papermc/world_nether -v ./world_the_end:/opt/papermc/world_the_end -v ./config:/opt/papermc/config -v ./plugins:/opt/papermc/plugins -v ./logs:/opt/papermc/logs hty1024/papermc/paper:1.20.1-134-alpine
  • Docker Compose 方式运行 请参考 example 目录内的 compose.yaml 文件