dockerfile/README.md

170 lines
4.3 KiB
Markdown
Raw Normal View History

# Dockerfile 示例
2023-12-12 15:53:58 +08:00
## Kiwix Server
ZIM 资源阅读器,可在线预览 ZIM 文档。运行 Kiwix Server 服务后即可通过浏览器访问 ZIM 文件。
**官方网站:**
- 官网 https://kiwix.org
- ZIM 文件下载地址 https://download.kiwix.org/zim
**目录说明:**
- standard 标准镜像构建目录
- alpine 精简镜像构建目录
- example 使用示例
**构建说明:**
1. 进入指定目录standard 或 alpine
2. 构建镜像
``` bash
docker build --no-cache -t 镜像名称:镜像TAG .
```
示例:
- 标准镜像(基于 openSUSE 15.5
``` bash
docker build --no-cache -t hty1024/kiwix-serve:3.5.0 .
```
- 精简镜像(基于 AlpineLinux 3.18.2
``` bash
docker build --no-cache -t hty1024/kiwix-serve:3.5.0-alpine .
```
**使用方式:**
1. 下载 ZIM 文件至主机
2. 配置 ZIM 文件所属用户
将 ZIM 文件所属用户组及用户均修改为 `1024`,示例如下:
``` bash
chown -R 1024.1024 ./data
```
3. 运行 Docker 容器
- 直接运行
``` bash
docker run --name 容器名称 -dit -p 服务端口号:10080 -v ZIM文件目录:/data 镜像名称:镜像TAG
```
    示例:
```bash
docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0
```
``` bash
docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.5.0-alpine
```
- Docker Compose 方式运行
请参考 example 目录内的 compose.yaml 文件
<br/>
## PaperMC Paper
Paper是基于Spigot的Minecraft游戏服务器旨在大大提高性能并提供更高级的功能和API。
**官方网站:**
- 官网 https://papermc.io
- 官网 https://papermc.io/software/paper
- 官方文档 https://docs.papermc.io
- 官网文档 https://docs.papermc.io/paper
**目录说明:**
- alpine 精简镜像构建目录
- example 使用示例
**构建说明:**
1. 进入指定目录alpine
2. 构建镜像
``` bash
docker build --no-cache -t 镜像名称:镜像TAG .
```
示例:
- 精简镜像(基于 Amazon Corretto 17.0.8
``` bash
docker build --no-cache -t hty1024/papermc/paper:1.20.1-134-alpine .
```
**使用方式:**
1. 创建相关目录(用于持久化相关数据)
创建 `world`、`world_nether`、`world_the_end`、`config`、`plugins`、`logs` 目录,示例如下:
``` bash
mkdir -pv {world,world_nether,world_the_end,config,plugins,logs}
```
2. 下载并按需修改配置文件 `server.properties`、`paper-global.yml`、`paper-world-defaults.yml` (文件见 `example` 目录)
具体选项参考官方文档
3. 阅读授权并修改 `eula.txt` 文件中 `eula` 的值为 `true`
4. 配置相关文件的所属用户
将目录的所属用户组及用户均修改为 `1024`:
``` bash
chown -R 1024.1024 world world_nether world_the_end config plugins logs server.properties eula.txt
```
5. 运行容器前的目录结构示例如下
``` bash
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` 日志目录
6. 运行 Docker 容器
- 直接运行
``` bash
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
```
示例:
```bash
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 文件