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

170 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 文件