170 lines
4.3 KiB
Markdown
170 lines
4.3 KiB
Markdown
# Dockerfile 示例
|
||
|
||
## 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.6.0 .
|
||
```
|
||
|
||
- 精简镜像(基于 AlpineLinux 3.18.5)
|
||
|
||
``` bash
|
||
docker build --no-cache -t hty1024/kiwix-serve:3.6.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.6.0
|
||
```
|
||
``` bash
|
||
docker run --name kiwix-serve -dit -p 10080:10080 -v ./data:/data hty1024/kiwix-serve:3.6.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 文件
|