forked from jlesage/docker-baseimage
-
Notifications
You must be signed in to change notification settings - Fork 0
/
baseimagedefs.xml
312 lines (311 loc) · 14.2 KB
/
baseimagedefs.xml
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
<!--
Definitions for docker-baseimage.
This file is used as data source to generate README.md and unRAID template files
from Jinja2 templates.
-->
<defs>
<baseimage>
<name>baseimage</name>
<title>A minimal docker baseimage to ease creation of long-lived application containers</title>
<description>
This is a docker baseimage that can be used to create containers for any
long-lived application.
</description>
<gui>False</gui>
<!-- Changelog -->
<history>
<release>
<version>2.4.3</version>
<date>2019-10-04</date>
<change>Updated installed packages to get latest security fixes.</change>
<change>Make sure the tzdata is installed.</change>
</release>
<release>
<version>2.4.2</version>
<date>2019-04-24</date>
<change>Updated installed packages to get latest security fixes.</change>
</release>
<release>
<version>2.4.1</version>
<date>2018-09-18</date>
<change>Updated installed packages to get latest security fixes.</change>
</release>
<release>
<version>2.4.0</version>
<date>2018-08-13</date>
<change>Added baseimage based on Ubuntu 18.04.</change>
</release>
<release>
<version>2.3.0</version>
<date>2018-07-06</date>
<change>Added images based on Alpine Linux 3.8.</change>
<change>Added images based on Debian 9.</change>
</release>
<release>
<version>2.2.8</version>
<date>2018-04-12</date>
<change>Fixed architecture of ubuntu baseimage: it is meant to be 64-bit.</change>
</release>
<release>
<version>2.2.7</version>
<date>2018-04-03</date>
<change>Upgraded s6-overlay to version 1.21.4.0.</change>
<change>Wait for a limited time when terminating a service.</change>
<change>Set and create the XDG_RUNTIME_DIR directory.</change>
</release>
<release>
<version>2.2.6</version>
<date>2018-03-02</date>
<change>Fixed issue where log monitor states were not cleared during container startup.</change>
</release>
<release>
<version>2.2.5</version>
<date>2018-02-02</date>
<change>Restored timezone support in Alpine Linux images with glibc.</change>
<change>Fixed issue in `add-pkg` helper where a package could be incorrectly detected as installed.</change>
</release>
<release>
<version>2.2.4</version>
<date>2018-01-22</date>
<change>Fixed the `LANG` environment variable not being set properly.</change>
</release>
<release>
<version>2.2.3</version>
<date>2018-01-12</date>
<change>For Alpine Linux images with glibc, automatically update dynamic linker's cache after new libraries are installed.</change>
</release>
<release>
<version>2.2.2</version>
<date>2018-01-10</date>
<change>Adjusted the way ownership of /config is taken to better support cases where the folder is mapped to a network share.</change>
</release>
<release>
<version>2.2.1</version>
<date>2018-01-04</date>
<change>Upgraded S6 overlay to version 1.21.2.2.</change>
<change>Upgraded glibc to version 2.26 (Alpine Linux glibc images).</change>
</release>
<release>
<version>2.2.0</version>
<date>2017-12-06</date>
<change>Added images based on Alpine Linux 3.7.</change>
</release>
<release>
<version>2.1.4</version>
<date>2017-11-19</date>
<change>Upgraded S6 overlay to version 1.21.2.1.</change>
</release>
<release>
<version>2.1.3</version>
<date>2017-11-06</date>
<change>Upgraded S6 overlay to version 1.21.2.0.</change>
<change>Use a more efficient way to monitor status files.</change>
</release>
<release>
<version>2.1.2</version>
<date>2017-10-31</date>
<change>Fixed an issue where a self-disabled service could be restarted.</change>
</release>
<release>
<version>2.1.1</version>
<date>2017-10-28</date>
<change>Fixed race condition where container's exit code would not be the expected one.</change>
</release>
<release>
<version>2.1.0</version>
<date>2017-10-27</date>
<change>Upgraded S6 overlay to version 1.21.1.1.</change>
<change>Enhanced integration of service dependencies functionality.</change>
<change>Added a simple log monitor.</change>
</release>
<release>
<version>2.0.0</version>
<date>2017-10-04</date>
<change>Added better support for service dependencies.</change>
<change level="2">Services startup order is automatically determined.</change>
<change level="2">Services are stopped in reverse order.</change>
<change level="2">The application's service is always started last.</change>
<change level="2">The following elements are no longer needed and have been removed:</change>
<change level="3">`s6-svrunning` and `s6-waitdeps` programs.</change>
<change level="3">Pre-stage3 with pre-finish scripts support.</change>
<change level="2">Note that these changes can break building and/or execution of containers based on v1.x of this baseimage.</change>
</release>
<release>
<version>1.1.6</version>
<date>2017-09-19</date>
<change>Restore default `/etc/shadow` during container startup.</change>
</release>
<release>
<version>1.1.5</version>
<date>2017-09-08</date>
<change>Fixed duplicated entries in /etc/passwd and /etc/group that were created after a restart of the container.</change>
</release>
<release>
<version>1.1.4</version>
<date>2017-09-06</date>
<change>Fixed timezone support on alpine-glibc images.</change>
</release>
<release>
<version>1.1.3</version>
<date>2017-08-12</date>
<change>Upgraded S6 overlay to version 1.20.0.0.</change>
</release>
<release>
<version>1.1.2</version>
<date>2017-07-31</date>
<change>Clear the environment of the container during startup.</change>
<change>Clear the `/tmp` folder during startup.</change>
</release>
<release>
<version>1.1.1</version>
<date>2017-07-28</date>
<change>Make sure to remove the container shutdown indication during startup. This fixes the behavior of `KEEP_APP_RUNNING` variable after a restart of the container.</change>
</release>
<release>
<version>1.1.0</version>
<date>2017-07-17</date>
<change>The following environment variables from the *XDG Base Directory Specification* are now set. Applications following this specification will have their configuration and data stored under `/config`.</change>
<change level="2">XDG_DATA_HOME=/config/xdg/data</change>
<change level="2">XDG_CONFIG_HOME=/config/xdg/config</change>
<change level="2">XDG_CACHE_HOME=/config/xdg/cache</change>
</release>
<release>
<version>1.0.0</version>
<date>2017-07-14</date>
<change>Initial release. This baseimage can be used to build containers running long-lived applications that don't require an X environment. It is the result of the split of the baseimage `jlesage/baseimage-gui`, from which all non-GUI related stuff has been moved into this new baseimage.</change>
</release>
</history>
</baseimage>
<container>
<!-- Environment variables -->
<environment_variables>
<environment_variable>
<name>APP_NAME</name>
<description>Name of the application.</description>
<default>DockerApp</default>
<limit_doc_to>baseimage</limit_doc_to>
</environment_variable>
<environment_variable>
<name>USER_ID</name>
<description>ID of the user the application runs as. See [User/Group IDs](#usergroup-ids) to better understand when this should be set.</description>
<default>1000</default>
<unraid_template>
<title>User ID</title>
<description>ID of the user the application runs as.</description>
<default>99</default>
<display>advanced-hide</display>
<required>true</required>
<mask>false</mask>
</unraid_template>
</environment_variable>
<environment_variable>
<name>GROUP_ID</name>
<description>ID of the group the application runs as. See [User/Group IDs](#usergroup-ids) to better understand when this should be set.</description>
<default>1000</default>
<unraid_template>
<title>Group ID</title>
<description>ID of the group the application runs as.</description>
<default>100</default>
<display>advanced-hide</display>
<required>true</required>
<mask>false</mask>
</unraid_template>
</environment_variable>
<environment_variable>
<name>SUP_GROUP_IDS</name>
<description>Comma-separated list of supplementary group IDs of the application.</description>
</environment_variable>
<environment_variable>
<name>UMASK</name>
<description>Mask that controls how file permissions are set for newly created files. The value of the mask is in octal notation. By default, this variable is not set and the default umask of `022` is used, meaning that newly created files are readable by everyone, but only writable by the owner. See the following online umask calculator: http://wintelguy.com/umask-calc.pl</description>
<unraid_template>
<title>Umask</title>
<description>Mask that controls how file permissions are set for newly created files. The value of the mask is in octal notation.</description>
<default>000</default>
<display>advanced</display>
<required>false</required>
<mask>false</mask>
</unraid_template>
</environment_variable>
<environment_variable>
<name>TZ</name>
<description>[TimeZone] of the container. Timezone can also be set by mapping `/etc/localtime` between the host and the container.</description>
<default>Etc/UTC</default>
</environment_variable>
<environment_variable>
<name>KEEP_APP_RUNNING</name>
<description>When set to `1`, the application will be automatically restarted if it crashes or if user quits it.</description>
<default>0</default>
</environment_variable>
<environment_variable>
<name>APP_NICENESS</name>
<description>Priority at which the application should run. A niceness value of -20 is the highest priority and 19 is the lowest priority. By default, niceness is not set, meaning that the default niceness of 0 is used. **NOTE**: A negative niceness (priority increase) requires additional permissions. In this case, the container should be run with the docker option `--cap-add=SYS_NICE`.</description>
<default/>
<unraid_template>
<title>Niceness (priority)</title>
<description>Priority at which the application should run. A niceness value of -20 is the highest priority and 19 is the lowest priority.[br][b]NOTE:[/b] Setting a negative value requires additional permissions. Thus, [i][b]--cap-add=SYS_NICE[/b][/i] must be added in [i]Extra Parameters[/i] (shown when [i]Advanced View[/i] is enabled).</description>
<display>advanced</display>
<required>false</required>
<mask>false</mask>
</unraid_template>
</environment_variable>
<environment_variable>
<name>TAKE_CONFIG_OWNERSHIP</name>
<description>When set to `1`, owner and group of `/config` (including all its files and subfolders) are automatically set during container startup to `USER_ID` and `GROUP_ID` respectively.</description>
<default>1</default>
<limit_doc_to>baseimage</limit_doc_to>
</environment_variable>
<environment_variable>
<name>CLEAN_TMP_DIR</name>
<description>When set to `1`, all files in the `/tmp` directory are delete during the container startup.</description>
<default>1</default>
</environment_variable>
</environment_variables>
<!-- Volumes -->
<volumes>
<volume>
<container_path>/config</container_path>
<host_path_example>/docker/appdata/{{ defs.app.name }}</host_path_example>
<description>This is where the application stores its configuration, log and any files needing persistency.</description>
<permissions>rw</permissions>
<include_in_quick_start>true</include_in_quick_start>
<limit_doc_to>app</limit_doc_to>
<unraid_template>
<title>Config Directory</title>
<description>This is where the application stores its configuration, log and any files needing persistency.[br]Container path: /config</description>
<default>/mnt/user/appdata/{{ defs.app.name }}</default>
<display>advanced-hide</display>
<required>true</required>
<mask>false</mask>
</unraid_template>
</volume>
<volume>
<container_path>/storage</container_path>
<host_path_example>$HOME</host_path_example>
<description>This location contains files from your host that need to be accessible by the application.</description>
<permissions>{{ defs.app.container.storage_permissions }}</permissions>
<include_in_quick_start>true</include_in_quick_start>
<limit_doc_to>app</limit_doc_to>
<unraid_template>
<title>Storage</title>
<description>This location contains files from your host that need to be accessible by the application.[br]Container path: /storage</description>
<default>/mnt/user</default>
<display>always-hide</display>
<required>true</required>
<mask>false</mask>
</unraid_template>
</volume>
</volumes>
<!-- Network ports -->
<ports/>
<!-- Devices -->
<devices/>
</container>
<!-- Extra stuff to be added to the documentation. -->
<documentation>
<link>
<name>TimeZone</name>
<url>http://en.wikipedia.org/wiki/List_of_tz_database_time_zones</url>
</link>
</documentation>
</defs>