-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathabstract-jib.yaml
120 lines (109 loc) · 4.55 KB
/
abstract-jib.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# required apiVersion and kind, for compatibility over versions of the cli
apiVersion: jib/v1alpha1
kind: BuildFile
# full base image specification with detail for manifest lists or multiple architectures
from:
image: "${BASE_IMAGE}@${DIGEST}"
# container environment variables
environment:
"JDK_JAVA_OPTIONS": "${JVM_FLAGS}"
# container labels
labels:
# Labels with respect to: https://github.com/opencontainers/image-spec/blob/main/annotations.md
"org.opencontainers.image.created": "${CREATED}"
"org.opencontainers.image.authors": "games647"
"org.opencontainers.image.url": "https://github.com/games647/PaperBox"
"org.opencontainers.image.documentation": "https://github.com/games647/PaperBox/blob/main/README.md"
"org.opencontainers.image.source": "https://github.com/games647/PaperBox"
"org.opencontainers.image.version": "${MC_VERSION}"
"org.opencontainers.image.revision": "${REVISION}"
"org.opencontainers.image.vendor": "games647"
# Paper is licensed under GPL 3 and MIT but not dual licensed (strictly and not or):
# https://github.com/PaperMC/Paper/blob/master/LICENSE.md
"org.opencontainers.image.license": "GPL-3.0-or-later and MIT"
"org.opencontainers.image.title": "PaperMC Minecraft server"
"org.opencontainers.image.description": "Paper server implementation of the Minecraft server"
"org.opencontainers.image.base.digest": "${DIGEST}"
"org.opencontainers.image.base.name": "${BASE_IMAGE}"
## specify exposed ports metadata (port-number/protocol)
exposedPorts:
- "25565"
entrypoint:
- "java"
- "-Dlog4j.configurationFile=log4j-without-file-logging.xml"
- "-cp"
- "/app"
- "io.papermc.paperclip.Main"
cmd:
# Disable the GUI by default
- "--nogui"
## file layers of the container
layers:
entries:
# Paperclip (server implementation patcher)
- name: "paperclip libraries"
files:
# These licenses are paperclip specific so inject them here
- src: "Paper/build/libs/temp/clip/META-INF/license/"
dest: "/app/paperclip/META-INF/license/"
- src: "Paper/build/libs/temp/clip/paperclip/libs"
dest: "/app/paperclip/libs"
- name: "paperclip"
files:
# Main class for paperclip
- src: "Paper/build/libs/temp/clip/META-INF/MANIFEST.MF"
dest: "/app/META-INF/MANIFEST.MF"
- src: "Paper/build/libs/temp/clip/io/papermc/paperclip/"
dest: "/app/io/papermc/paperclip/"
# Mojang unmodified server
- name: "vanilla"
files:
# Download source with checksum
- src: "Paper/build/libs/temp/clip/META-INF/download-context"
dest: "/app/META-INF/download-context"
# Distributed version file from vanilla server
- src: "Paper/build/libs/temp/clip/version.json"
dest: "/app/version.json"
# This file will be again root owned
- src: "Paper/.gradle/caches/paperweight/taskCache/downloadServerJar.jar"
dest: "/home/nonroot/cache/mojang_${MC_VERSION}.jar"
- name: "libraries"
files:
- src: "Paper/build/libs/temp/clip/META-INF/libraries.list"
dest: "/app/META-INF/libraries.list"
# Force permission on work dir, because JIB resets the permission for all parent libraries on copy
# if not set by JIB itself
# https://github.com/GoogleContainerTools/jib/issues/1257
- src: "Paper/build/libs/temp/dummy"
dest: "/home/nonroot/"
properties:
# UID/GID of nonroot user
user: "65532"
group: "65532"
# Paperclip complains otherwise about the already existing cache folder
directoryPermissions: "744"
- src: "log4j-without-file-logging.xml"
dest: "/home/nonroot/log4j-without-file-logging.xml"
- src: "Paper/build/libs/temp/bundler/META-INF/libraries/"
dest: "/home/nonroot/libraries"
properties:
# UID/GID of nonroot user
user: "65532"
group: "65532"
# Only give read of the given files
filePermissions: "444"
directoryPermissions: "744"
includes:
- '**/*.jar'
- '**/*.patch'
- name: "application"
files:
# Server specific main class
- src: "Paper/build/libs/temp/clip/META-INF/main-class"
dest: "/app/META-INF/main-class"
# Server patch file
- src: "Paper/build/libs/temp/clip/META-INF/versions/"
dest: "/app/META-INF/versions/"
# Checksums?
- src: "Paper/build/libs/temp/clip/META-INF/patches.list"
dest: "/app/META-INF/patches.list"