39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
# PaperDockerBuilder
|
|
|
|
Jenkins pipeline to build a Docker image of Paper.
|
|
|
|
```bash
|
|
Dockerfile # used to build the Docker image
|
|
Jenkinsfile # the pipeline file
|
|
Readme.md # you are reading this file
|
|
run.sh # entrypoint of the Docker image
|
|
```
|
|
|
|
## Pipeline process
|
|
|
|
1. Fetches the information about the latest build of Paper for the provided MC version, from the [PaperMC API](https://api.papermc.io/v2/projects/paper)
|
|
2. Downloads the Paper jar file.
|
|
3. Builds the docker image with the downloaded jar and the entrypoint script, ensuring libraries are downloaded and Paper patch is applied.
|
|
4. Pushes the image to the container registry with the tags `$mc_version` (e.g. `1.20.1`) and `$mc_version-$paper_build` (e.g. `1.20.1-196`)
|
|
|
|
## Docker Compose Example
|
|
|
|
```yml
|
|
version: "3"
|
|
services:
|
|
paper:
|
|
image: "cr.pandacube.fr/paper:(version)"
|
|
container_name: (server name)
|
|
stdin_open: true # docker run -i
|
|
tty: true # docker run -t
|
|
user: "1000:1000" # uid and gid of owner of working dir
|
|
environment:
|
|
- MAXMEM=2048M # Java max heap size
|
|
restart: always
|
|
volumes:
|
|
- .:/data/workdir
|
|
- /etc/timezone:/etc/timezone:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
ports:
|
|
- "0.0.0.0:(port):25565"
|
|
``` |