Copying in pre-existing image recipes.
Showing
25 changed files
with
1030 additions
and
0 deletions
dovecot/Dockerfile
0 → 100644
dovecot/files/configure
0 → 100755
1 | #!/bin/sh | ||
2 | |||
3 | set -e | ||
4 | |||
5 | mkdir -p /etc/dovecot/conf.d/ | ||
6 | cp /tmp/files/dovecot.conf /etc/dovecot/conf.d/99-docker.conf | ||
7 | |||
8 | apt-get update | ||
9 | apt-get install -y ssmtp dovecot-sqlite dovecot-imapd | ||
10 | |||
11 | cp /tmp/files/entrypoint /sbin/entrypoint | ||
12 | |||
13 | addgroup hostgroup | ||
14 | adduser --gecos 'Host User' --ingroup hostgroup --disabled-password hostuser |
dovecot/files/dovecot.conf
0 → 100644
dovecot/files/entrypoint
0 → 100755
1 | #!/bin/bash | ||
2 | |||
3 | set -ex | ||
4 | |||
5 | hostuser_home="$(getent passwd hostuser | cut -f 6 -d :)" | ||
6 | |||
7 | if [[ $GID ]]; then | ||
8 | old_gid=$(getent group hostgroup | cut -f 3 -d :) | ||
9 | groupmod -g $GID hostgroup | ||
10 | find "$hostuser_home" -gid $old_gid -print0 | xargs -0r chgrp hostgroup | ||
11 | fi | ||
12 | if [[ $UID ]]; then | ||
13 | usermod -u $UID hostuser | ||
14 | fi | ||
15 | |||
16 | if [[ $DOVECOT_HOSTUSER_PASSWORD ]]; then | ||
17 | echo "hostuser:$DOVECOT_HOSTUSER_PASSWORD" | chpasswd | ||
18 | fi | ||
19 | |||
20 | exec "$@" |
nginx/Dockerfile
0 → 100644
nginx/files/configure
0 → 100755
nginx/files/entrypoint.sh
0 → 100755
node/Dockerfile
0 → 100644
1 | FROM node | ||
2 | |||
3 | COPY files/ /tmp/files/ | ||
4 | RUN /tmp/files/configure | ||
5 | |||
6 | #ADD https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar /usr/local/bin/wp | ||
7 | #RUN ["chmod", "755", "/usr/local/bin/wp"] | ||
8 | |||
9 | ENTRYPOINT ["/root/entrypoint"] | ||
10 | #CMD ["/usr/sbin/php5-fpm", "--nodaemonize", "--force-stderr", "--fpm-config", "/etc/php5/fpm/php-fpm.conf"] |
node/files/app-defaults.conf
0 → 100644
1 | ; Per pool prefix | ||
2 | ; It only applies on the following directives: | ||
3 | ; - 'slowlog' | ||
4 | ; - 'listen' (unixsocket) | ||
5 | ; - 'chroot' | ||
6 | ; - 'chdir' | ||
7 | ; - 'php_values' | ||
8 | ; - 'php_admin_values' | ||
9 | ; When not set, the global prefix (or /usr) applies instead. | ||
10 | ; Note: This directive can also be relative to the global prefix. | ||
11 | ; Default Value: none | ||
12 | prefix = /srv/$pool | ||
13 | |||
14 | ; The address on which to accept FastCGI requests. | ||
15 | ; Valid syntaxes are: | ||
16 | ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on | ||
17 | ; a specific port; | ||
18 | ; 'port' - to listen on a TCP socket to all addresses on a | ||
19 | ; specific port; | ||
20 | ; '/path/to/unix/socket' - to listen on a unix socket. | ||
21 | ; Note: This value is mandatory. | ||
22 | listen = 9000 | ||
23 | |||
24 | ; Set listen(2) backlog. | ||
25 | ; Default Value: 128 (-1 on FreeBSD and OpenBSD) | ||
26 | ;listen.backlog = 128 | ||
27 | |||
28 | ; Set permissions for unix socket, if one is used. In Linux, read/write | ||
29 | ; permissions must be set in order to allow connections from a web server. Many | ||
30 | ; BSD-derived systems allow connections regardless of permissions. | ||
31 | ; Default Values: user and group are set as the running user | ||
32 | ; mode is set to 0666 | ||
33 | ;listen.owner = www-data | ||
34 | ;listen.group = www-data | ||
35 | ;listen.mode = 0666 | ||
36 | |||
37 | ; List of ipv4 addresses of FastCGI clients which are allowed to connect. | ||
38 | ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original | ||
39 | ; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address | ||
40 | ; must be separated by a comma. If this value is left blank, connections will be | ||
41 | ; accepted from any ip address. | ||
42 | ; Default Value: any | ||
43 | ;listen.allowed_clients = 127.0.0.1 | ||
44 | |||
45 | ; Choose how the process manager will control the number of child processes. | ||
46 | ; Possible Values: | ||
47 | ; static - a fixed number (pm.max_children) of child processes; | ||
48 | ; dynamic - the number of child processes are set dynamically based on the | ||
49 | ; following directives. With this process management, there will be | ||
50 | ; always at least 1 children. | ||
51 | ; pm.max_children - the maximum number of children that can | ||
52 | ; be alive at the same time. | ||
53 | ; pm.start_servers - the number of children created on startup. | ||
54 | ; pm.min_spare_servers - the minimum number of children in 'idle' | ||
55 | ; state (waiting to process). If the number | ||
56 | ; of 'idle' processes is less than this | ||
57 | ; number then some children will be created. | ||
58 | ; pm.max_spare_servers - the maximum number of children in 'idle' | ||
59 | ; state (waiting to process). If the number | ||
60 | ; of 'idle' processes is greater than this | ||
61 | ; number then some children will be killed. | ||
62 | ; ondemand - no children are created at startup. Children will be forked when | ||
63 | ; new requests will connect. The following parameter are used: | ||
64 | ; pm.max_children - the maximum number of children that | ||
65 | ; can be alive at the same time. | ||
66 | ; pm.process_idle_timeout - The number of seconds after which | ||
67 | ; an idle process will be killed. | ||
68 | ; Note: This value is mandatory. | ||
69 | pm = ondemand | ||
70 | |||
71 | ; The number of child processes to be created when pm is set to 'static' and the | ||
72 | ; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. | ||
73 | ; This value sets the limit on the number of simultaneous requests that will be | ||
74 | ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. | ||
75 | ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP | ||
76 | ; CGI. The below defaults are based on a server without much resources. Don't | ||
77 | ; forget to tweak pm.* to fit your needs. | ||
78 | ; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' | ||
79 | ; Note: This value is mandatory. | ||
80 | pm.max_children = 10 | ||
81 | |||
82 | ; The number of child processes created on startup. | ||
83 | ; Note: Used only when pm is set to 'dynamic' | ||
84 | ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 | ||
85 | pm.start_servers = 1 | ||
86 | |||
87 | ; The desired minimum number of idle server processes. | ||
88 | ; Note: Used only when pm is set to 'dynamic' | ||
89 | ; Note: Mandatory when pm is set to 'dynamic' | ||
90 | pm.min_spare_servers = 1 | ||
91 | |||
92 | ; The desired maximum number of idle server processes. | ||
93 | ; Note: Used only when pm is set to 'dynamic' | ||
94 | ; Note: Mandatory when pm is set to 'dynamic' | ||
95 | pm.max_spare_servers = 3 | ||
96 | |||
97 | ; The number of seconds after which an idle process will be killed. | ||
98 | ; Note: Used only when pm is set to 'ondemand' | ||
99 | ; Default Value: 10s | ||
100 | ;pm.process_idle_timeout = 10s; | ||
101 | |||
102 | ; The number of requests each child process should execute before respawning. | ||
103 | ; This can be useful to work around memory leaks in 3rd party libraries. For | ||
104 | ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. | ||
105 | ; Default Value: 0 | ||
106 | ;pm.max_requests = 500 | ||
107 | |||
108 | ; The URI to view the FPM status page. If this value is not set, no URI will be | ||
109 | ; recognized as a status page. It shows the following informations: | ||
110 | ; pool - the name of the pool; | ||
111 | ; process manager - static, dynamic or ondemand; | ||
112 | ; start time - the date and time FPM has started; | ||
113 | ; start since - number of seconds since FPM has started; | ||
114 | ; accepted conn - the number of request accepted by the pool; | ||
115 | ; listen queue - the number of request in the queue of pending | ||
116 | ; connections (see backlog in listen(2)); | ||
117 | ; max listen queue - the maximum number of requests in the queue | ||
118 | ; of pending connections since FPM has started; | ||
119 | ; listen queue len - the size of the socket queue of pending connections; | ||
120 | ; idle processes - the number of idle processes; | ||
121 | ; active processes - the number of active processes; | ||
122 | ; total processes - the number of idle + active processes; | ||
123 | ; max active processes - the maximum number of active processes since FPM | ||
124 | ; has started; | ||
125 | ; max children reached - number of times, the process limit has been reached, | ||
126 | ; when pm tries to start more children (works only for | ||
127 | ; pm 'dynamic' and 'ondemand'); | ||
128 | ; Value are updated in real time. | ||
129 | ; Example output: | ||
130 | ; pool: www | ||
131 | ; process manager: static | ||
132 | ; start time: 01/Jul/2011:17:53:49 +0200 | ||
133 | ; start since: 62636 | ||
134 | ; accepted conn: 190460 | ||
135 | ; listen queue: 0 | ||
136 | ; max listen queue: 1 | ||
137 | ; listen queue len: 42 | ||
138 | ; idle processes: 4 | ||
139 | ; active processes: 11 | ||
140 | ; total processes: 15 | ||
141 | ; max active processes: 12 | ||
142 | ; max children reached: 0 | ||
143 | ; | ||
144 | ; By default the status page output is formatted as text/plain. Passing either | ||
145 | ; 'html', 'xml' or 'json' in the query string will return the corresponding | ||
146 | ; output syntax. Example: | ||
147 | ; http://www.foo.bar/status | ||
148 | ; http://www.foo.bar/status?json | ||
149 | ; http://www.foo.bar/status?html | ||
150 | ; http://www.foo.bar/status?xml | ||
151 | ; | ||
152 | ; By default the status page only outputs short status. Passing 'full' in the | ||
153 | ; query string will also return status for each pool process. | ||
154 | ; Example: | ||
155 | ; http://www.foo.bar/status?full | ||
156 | ; http://www.foo.bar/status?json&full | ||
157 | ; http://www.foo.bar/status?html&full | ||
158 | ; http://www.foo.bar/status?xml&full | ||
159 | ; The Full status returns for each process: | ||
160 | ; pid - the PID of the process; | ||
161 | ; state - the state of the process (Idle, Running, ...); | ||
162 | ; start time - the date and time the process has started; | ||
163 | ; start since - the number of seconds since the process has started; | ||
164 | ; requests - the number of requests the process has served; | ||
165 | ; request duration - the duration in µs of the requests; | ||
166 | ; request method - the request method (GET, POST, ...); | ||
167 | ; request URI - the request URI with the query string; | ||
168 | ; content length - the content length of the request (only with POST); | ||
169 | ; user - the user (PHP_AUTH_USER) (or '-' if not set); | ||
170 | ; script - the main script called (or '-' if not set); | ||
171 | ; last request cpu - the %cpu the last request consumed | ||
172 | ; it's always 0 if the process is not in Idle state | ||
173 | ; because CPU calculation is done when the request | ||
174 | ; processing has terminated; | ||
175 | ; last request memory - the max amount of memory the last request consumed | ||
176 | ; it's always 0 if the process is not in Idle state | ||
177 | ; because memory calculation is done when the request | ||
178 | ; processing has terminated; | ||
179 | ; If the process is in Idle state, then informations are related to the | ||
180 | ; last request the process has served. Otherwise informations are related to | ||
181 | ; the current request being served. | ||
182 | ; Example output: | ||
183 | ; ************************ | ||
184 | ; pid: 31330 | ||
185 | ; state: Running | ||
186 | ; start time: 01/Jul/2011:17:53:49 +0200 | ||
187 | ; start since: 63087 | ||
188 | ; requests: 12808 | ||
189 | ; request duration: 1250261 | ||
190 | ; request method: GET | ||
191 | ; request URI: /test_mem.php?N=10000 | ||
192 | ; content length: 0 | ||
193 | ; user: - | ||
194 | ; script: /home/fat/web/docs/php/test_mem.php | ||
195 | ; last request cpu: 0.00 | ||
196 | ; last request memory: 0 | ||
197 | ; | ||
198 | ; Note: There is a real-time FPM status monitoring sample web page available | ||
199 | ; It's available in: ${prefix}/share/fpm/status.html | ||
200 | ; | ||
201 | ; Note: The value must start with a leading slash (/). The value can be | ||
202 | ; anything, but it may not be a good idea to use the .php extension or it | ||
203 | ; may conflict with a real PHP file. | ||
204 | ; Default Value: not set | ||
205 | ;pm.status_path = /status | ||
206 | |||
207 | ; The ping URI to call the monitoring page of FPM. If this value is not set, no | ||
208 | ; URI will be recognized as a ping page. This could be used to test from outside | ||
209 | ; that FPM is alive and responding, or to | ||
210 | ; - create a graph of FPM availability (rrd or such); | ||
211 | ; - remove a server from a group if it is not responding (load balancing); | ||
212 | ; - trigger alerts for the operating team (24/7). | ||
213 | ; Note: The value must start with a leading slash (/). The value can be | ||
214 | ; anything, but it may not be a good idea to use the .php extension or it | ||
215 | ; may conflict with a real PHP file. | ||
216 | ; Default Value: not set | ||
217 | ;ping.path = /ping | ||
218 | |||
219 | ; This directive may be used to customize the response of a ping request. The | ||
220 | ; response is formatted as text/plain with a 200 response code. | ||
221 | ; Default Value: pong | ||
222 | ;ping.response = pong | ||
223 | |||
224 | ; The access log file | ||
225 | ; Default: not set | ||
226 | ;access.log = log/$pool.access.log | ||
227 | |||
228 | ; The access log format. | ||
229 | ; The following syntax is allowed | ||
230 | ; %%: the '%' character | ||
231 | ; %C: %CPU used by the request | ||
232 | ; it can accept the following format: | ||
233 | ; - %{user}C for user CPU only | ||
234 | ; - %{system}C for system CPU only | ||
235 | ; - %{total}C for user + system CPU (default) | ||
236 | ; %d: time taken to serve the request | ||
237 | ; it can accept the following format: | ||
238 | ; - %{seconds}d (default) | ||
239 | ; - %{miliseconds}d | ||
240 | ; - %{mili}d | ||
241 | ; - %{microseconds}d | ||
242 | ; - %{micro}d | ||
243 | ; %e: an environment variable (same as $_ENV or $_SERVER) | ||
244 | ; it must be associated with embraces to specify the name of the env | ||
245 | ; variable. Some exemples: | ||
246 | ; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e | ||
247 | ; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e | ||
248 | ; %f: script filename | ||
249 | ; %l: content-length of the request (for POST request only) | ||
250 | ; %m: request method | ||
251 | ; %M: peak of memory allocated by PHP | ||
252 | ; it can accept the following format: | ||
253 | ; - %{bytes}M (default) | ||
254 | ; - %{kilobytes}M | ||
255 | ; - %{kilo}M | ||
256 | ; - %{megabytes}M | ||
257 | ; - %{mega}M | ||
258 | ; %n: pool name | ||
259 | ; %o: ouput header | ||
260 | ; it must be associated with embraces to specify the name of the header: | ||
261 | ; - %{Content-Type}o | ||
262 | ; - %{X-Powered-By}o | ||
263 | ; - %{Transfert-Encoding}o | ||
264 | ; - .... | ||
265 | ; %p: PID of the child that serviced the request | ||
266 | ; %P: PID of the parent of the child that serviced the request | ||
267 | ; %q: the query string | ||
268 | ; %Q: the '?' character if query string exists | ||
269 | ; %r: the request URI (without the query string, see %q and %Q) | ||
270 | ; %R: remote IP address | ||
271 | ; %s: status (response code) | ||
272 | ; %t: server time the request was received | ||
273 | ; it can accept a strftime(3) format: | ||
274 | ; %d/%b/%Y:%H:%M:%S %z (default) | ||
275 | ; %T: time the log has been written (the request has finished) | ||
276 | ; it can accept a strftime(3) format: | ||
277 | ; %d/%b/%Y:%H:%M:%S %z (default) | ||
278 | ; %u: remote user | ||
279 | ; | ||
280 | ; Default: "%R - %u %t \"%m %r\" %s" | ||
281 | ;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" | ||
282 | |||
283 | ; The log file for slow requests | ||
284 | ; Default Value: not set | ||
285 | ; Note: slowlog is mandatory if request_slowlog_timeout is set | ||
286 | ;slowlog = log/$pool.log.slow | ||
287 | |||
288 | ; The timeout for serving a single request after which a PHP backtrace will be | ||
289 | ; dumped to the 'slowlog' file. A value of '0s' means 'off'. | ||
290 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) | ||
291 | ; Default Value: 0 | ||
292 | ;request_slowlog_timeout = 0 | ||
293 | |||
294 | ; The timeout for serving a single request after which the worker process will | ||
295 | ; be killed. This option should be used when the 'max_execution_time' ini option | ||
296 | ; does not stop script execution for some reason. A value of '0' means 'off'. | ||
297 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) | ||
298 | ; Default Value: 0 | ||
299 | ;request_terminate_timeout = 0 | ||
300 | |||
301 | ; Set open file descriptor rlimit. | ||
302 | ; Default Value: system defined value | ||
303 | ;rlimit_files = 1024 | ||
304 | |||
305 | ; Set max core size rlimit. | ||
306 | ; Possible Values: 'unlimited' or an integer greater or equal to 0 | ||
307 | ; Default Value: system defined value | ||
308 | ;rlimit_core = 0 | ||
309 | |||
310 | ; Chroot to this directory at the start. This value must be defined as an | ||
311 | ; absolute path. When this value is not set, chroot is not used. | ||
312 | ; Note: you can prefix with '$prefix' to chroot to the pool prefix or one | ||
313 | ; of its subdirectories. If the pool prefix is not set, the global prefix | ||
314 | ; will be used instead. | ||
315 | ; Note: chrooting is a great security feature and should be used whenever | ||
316 | ; possible. However, all PHP paths will be relative to the chroot | ||
317 | ; (error_log, sessions.save_path, ...). | ||
318 | ; Default Value: not set | ||
319 | ; chroot = $prefix | ||
320 | |||
321 | ; Chdir to this directory at the start. | ||
322 | ; Note: relative path can be used. | ||
323 | ; Default Value: current directory or / when chroot | ||
324 | ; chdir = / | ||
325 | |||
326 | ; Redirect worker stdout and stderr into main error log. If not set, stdout and | ||
327 | ; stderr will be redirected to /dev/null according to FastCGI specs. | ||
328 | ; Note: on highloaded environement, this can cause some delay in the page | ||
329 | ; process time (several ms). | ||
330 | ; Default Value: no | ||
331 | ;catch_workers_output = yes | ||
332 | |||
333 | ; Limits the extensions of the main script FPM will allow to parse. This can | ||
334 | ; prevent configuration mistakes on the web server side. You should only limit | ||
335 | ; FPM to .php extensions to prevent malicious users to use other extensions to | ||
336 | ; exectute php code. | ||
337 | ; Note: set an empty value to allow all extensions. | ||
338 | ; Default Value: .php | ||
339 | ;security.limit_extensions = .php .php3 .php4 .php5 | ||
340 | |||
341 | ; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from | ||
342 | ; the current environment. | ||
343 | ; Default Value: clean env | ||
344 | ;env[HOSTNAME] = $HOSTNAME | ||
345 | ;env[PATH] = /usr/local/bin:/usr/bin:/bin | ||
346 | ;env[TMP] = /tmp | ||
347 | ;env[TMPDIR] = /tmp | ||
348 | ;env[TEMP] = /tmp | ||
349 | |||
350 | ; Additional php.ini defines, specific to this pool of workers. These settings | ||
351 | ; overwrite the values previously defined in the php.ini. The directives are the | ||
352 | ; same as the PHP SAPI: | ||
353 | ; php_value/php_flag - you can set classic ini defines which can | ||
354 | ; be overwritten from PHP call 'ini_set'. | ||
355 | ; php_admin_value/php_admin_flag - these directives won't be overwritten by | ||
356 | ; PHP call 'ini_set' | ||
357 | ; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. | ||
358 | |||
359 | ; Defining 'extension' will load the corresponding shared extension from | ||
360 | ; extension_dir. Defining 'disable_functions' or 'disable_classes' will not | ||
361 | ; overwrite previously defined php.ini values, but will append the new value | ||
362 | ; instead. | ||
363 | |||
364 | ; Note: path INI options can be relative and will be expanded with the prefix | ||
365 | ; (pool, global or /usr) | ||
366 | |||
367 | ; Default Value: nothing is defined by default except the values in php.ini and | ||
368 | ; specified at startup with the -d argument | ||
369 | ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com | ||
370 | ;php_flag[display_errors] = off | ||
371 | ;php_admin_value[error_log] = /var/log/php5-fpm/error.log | ||
372 | php_admin_value[error_log] = /dev/stderr | ||
373 | php_admin_flag[log_errors] = on | ||
374 | ;php_admin_value[memory_limit] = 32M |
node/files/configure
0 → 100755
node/files/entrypoint
0 → 100755
1 | #!/bin/bash | ||
2 | |||
3 | set -ex | ||
4 | |||
5 | node_home="$(getent passwd node | cut -f 6 -d :)" | ||
6 | |||
7 | if [[ $GID ]]; then | ||
8 | old_gid=$(getent group node | cut -f 3 -d :) | ||
9 | groupmod -g $GID node | ||
10 | find "$node_home" -gid $old_gid -print0 | xargs -0r chgrp node | ||
11 | fi | ||
12 | if [[ $UID ]]; then | ||
13 | usermod -u $UID node | ||
14 | fi | ||
15 | if [[ -e package.json ]]; then | ||
16 | sudo -u node npm install | ||
17 | fi | ||
18 | exec "$@" |
php-fpm/Dockerfile
0 → 100644
1 | FROM debian:stretch | ||
2 | |||
3 | COPY files/ /tmp/files/ | ||
4 | RUN /tmp/files/configure | ||
5 | |||
6 | ADD https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar /usr/local/bin/wp | ||
7 | RUN ["chmod", "755", "/usr/local/bin/wp"] | ||
8 | |||
9 | ENTRYPOINT ["/root/entrypoint"] | ||
10 | CMD ["/usr/sbin/php-fpm7.0", "--nodaemonize", "--force-stderr", "--fpm-config", "/etc/php/7.0/fpm/php-fpm.conf"] |
php-fpm/files/app-defaults.conf
0 → 100644
1 | ; Per pool prefix | ||
2 | ; It only applies on the following directives: | ||
3 | ; - 'slowlog' | ||
4 | ; - 'listen' (unixsocket) | ||
5 | ; - 'chroot' | ||
6 | ; - 'chdir' | ||
7 | ; - 'php_values' | ||
8 | ; - 'php_admin_values' | ||
9 | ; When not set, the global prefix (or /usr) applies instead. | ||
10 | ; Note: This directive can also be relative to the global prefix. | ||
11 | ; Default Value: none | ||
12 | prefix = /srv/$pool | ||
13 | |||
14 | ; The address on which to accept FastCGI requests. | ||
15 | ; Valid syntaxes are: | ||
16 | ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on | ||
17 | ; a specific port; | ||
18 | ; 'port' - to listen on a TCP socket to all addresses on a | ||
19 | ; specific port; | ||
20 | ; '/path/to/unix/socket' - to listen on a unix socket. | ||
21 | ; Note: This value is mandatory. | ||
22 | listen = 9000 | ||
23 | |||
24 | ; Set listen(2) backlog. | ||
25 | ; Default Value: 128 (-1 on FreeBSD and OpenBSD) | ||
26 | ;listen.backlog = 128 | ||
27 | |||
28 | ; Set permissions for unix socket, if one is used. In Linux, read/write | ||
29 | ; permissions must be set in order to allow connections from a web server. Many | ||
30 | ; BSD-derived systems allow connections regardless of permissions. | ||
31 | ; Default Values: user and group are set as the running user | ||
32 | ; mode is set to 0666 | ||
33 | ;listen.owner = www-data | ||
34 | ;listen.group = www-data | ||
35 | ;listen.mode = 0666 | ||
36 | |||
37 | ; List of ipv4 addresses of FastCGI clients which are allowed to connect. | ||
38 | ; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original | ||
39 | ; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address | ||
40 | ; must be separated by a comma. If this value is left blank, connections will be | ||
41 | ; accepted from any ip address. | ||
42 | ; Default Value: any | ||
43 | ;listen.allowed_clients = 127.0.0.1 | ||
44 | |||
45 | ; Choose how the process manager will control the number of child processes. | ||
46 | ; Possible Values: | ||
47 | ; static - a fixed number (pm.max_children) of child processes; | ||
48 | ; dynamic - the number of child processes are set dynamically based on the | ||
49 | ; following directives. With this process management, there will be | ||
50 | ; always at least 1 children. | ||
51 | ; pm.max_children - the maximum number of children that can | ||
52 | ; be alive at the same time. | ||
53 | ; pm.start_servers - the number of children created on startup. | ||
54 | ; pm.min_spare_servers - the minimum number of children in 'idle' | ||
55 | ; state (waiting to process). If the number | ||
56 | ; of 'idle' processes is less than this | ||
57 | ; number then some children will be created. | ||
58 | ; pm.max_spare_servers - the maximum number of children in 'idle' | ||
59 | ; state (waiting to process). If the number | ||
60 | ; of 'idle' processes is greater than this | ||
61 | ; number then some children will be killed. | ||
62 | ; ondemand - no children are created at startup. Children will be forked when | ||
63 | ; new requests will connect. The following parameter are used: | ||
64 | ; pm.max_children - the maximum number of children that | ||
65 | ; can be alive at the same time. | ||
66 | ; pm.process_idle_timeout - The number of seconds after which | ||
67 | ; an idle process will be killed. | ||
68 | ; Note: This value is mandatory. | ||
69 | pm = ondemand | ||
70 | |||
71 | ; The number of child processes to be created when pm is set to 'static' and the | ||
72 | ; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. | ||
73 | ; This value sets the limit on the number of simultaneous requests that will be | ||
74 | ; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. | ||
75 | ; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP | ||
76 | ; CGI. The below defaults are based on a server without much resources. Don't | ||
77 | ; forget to tweak pm.* to fit your needs. | ||
78 | ; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' | ||
79 | ; Note: This value is mandatory. | ||
80 | pm.max_children = 10 | ||
81 | |||
82 | ; The number of child processes created on startup. | ||
83 | ; Note: Used only when pm is set to 'dynamic' | ||
84 | ; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 | ||
85 | pm.start_servers = 1 | ||
86 | |||
87 | ; The desired minimum number of idle server processes. | ||
88 | ; Note: Used only when pm is set to 'dynamic' | ||
89 | ; Note: Mandatory when pm is set to 'dynamic' | ||
90 | pm.min_spare_servers = 1 | ||
91 | |||
92 | ; The desired maximum number of idle server processes. | ||
93 | ; Note: Used only when pm is set to 'dynamic' | ||
94 | ; Note: Mandatory when pm is set to 'dynamic' | ||
95 | pm.max_spare_servers = 3 | ||
96 | |||
97 | ; The number of seconds after which an idle process will be killed. | ||
98 | ; Note: Used only when pm is set to 'ondemand' | ||
99 | ; Default Value: 10s | ||
100 | ;pm.process_idle_timeout = 10s; | ||
101 | |||
102 | ; The number of requests each child process should execute before respawning. | ||
103 | ; This can be useful to work around memory leaks in 3rd party libraries. For | ||
104 | ; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. | ||
105 | ; Default Value: 0 | ||
106 | ;pm.max_requests = 500 | ||
107 | |||
108 | ; The URI to view the FPM status page. If this value is not set, no URI will be | ||
109 | ; recognized as a status page. It shows the following informations: | ||
110 | ; pool - the name of the pool; | ||
111 | ; process manager - static, dynamic or ondemand; | ||
112 | ; start time - the date and time FPM has started; | ||
113 | ; start since - number of seconds since FPM has started; | ||
114 | ; accepted conn - the number of request accepted by the pool; | ||
115 | ; listen queue - the number of request in the queue of pending | ||
116 | ; connections (see backlog in listen(2)); | ||
117 | ; max listen queue - the maximum number of requests in the queue | ||
118 | ; of pending connections since FPM has started; | ||
119 | ; listen queue len - the size of the socket queue of pending connections; | ||
120 | ; idle processes - the number of idle processes; | ||
121 | ; active processes - the number of active processes; | ||
122 | ; total processes - the number of idle + active processes; | ||
123 | ; max active processes - the maximum number of active processes since FPM | ||
124 | ; has started; | ||
125 | ; max children reached - number of times, the process limit has been reached, | ||
126 | ; when pm tries to start more children (works only for | ||
127 | ; pm 'dynamic' and 'ondemand'); | ||
128 | ; Value are updated in real time. | ||
129 | ; Example output: | ||
130 | ; pool: www | ||
131 | ; process manager: static | ||
132 | ; start time: 01/Jul/2011:17:53:49 +0200 | ||
133 | ; start since: 62636 | ||
134 | ; accepted conn: 190460 | ||
135 | ; listen queue: 0 | ||
136 | ; max listen queue: 1 | ||
137 | ; listen queue len: 42 | ||
138 | ; idle processes: 4 | ||
139 | ; active processes: 11 | ||
140 | ; total processes: 15 | ||
141 | ; max active processes: 12 | ||
142 | ; max children reached: 0 | ||
143 | ; | ||
144 | ; By default the status page output is formatted as text/plain. Passing either | ||
145 | ; 'html', 'xml' or 'json' in the query string will return the corresponding | ||
146 | ; output syntax. Example: | ||
147 | ; http://www.foo.bar/status | ||
148 | ; http://www.foo.bar/status?json | ||
149 | ; http://www.foo.bar/status?html | ||
150 | ; http://www.foo.bar/status?xml | ||
151 | ; | ||
152 | ; By default the status page only outputs short status. Passing 'full' in the | ||
153 | ; query string will also return status for each pool process. | ||
154 | ; Example: | ||
155 | ; http://www.foo.bar/status?full | ||
156 | ; http://www.foo.bar/status?json&full | ||
157 | ; http://www.foo.bar/status?html&full | ||
158 | ; http://www.foo.bar/status?xml&full | ||
159 | ; The Full status returns for each process: | ||
160 | ; pid - the PID of the process; | ||
161 | ; state - the state of the process (Idle, Running, ...); | ||
162 | ; start time - the date and time the process has started; | ||
163 | ; start since - the number of seconds since the process has started; | ||
164 | ; requests - the number of requests the process has served; | ||
165 | ; request duration - the duration in µs of the requests; | ||
166 | ; request method - the request method (GET, POST, ...); | ||
167 | ; request URI - the request URI with the query string; | ||
168 | ; content length - the content length of the request (only with POST); | ||
169 | ; user - the user (PHP_AUTH_USER) (or '-' if not set); | ||
170 | ; script - the main script called (or '-' if not set); | ||
171 | ; last request cpu - the %cpu the last request consumed | ||
172 | ; it's always 0 if the process is not in Idle state | ||
173 | ; because CPU calculation is done when the request | ||
174 | ; processing has terminated; | ||
175 | ; last request memory - the max amount of memory the last request consumed | ||
176 | ; it's always 0 if the process is not in Idle state | ||
177 | ; because memory calculation is done when the request | ||
178 | ; processing has terminated; | ||
179 | ; If the process is in Idle state, then informations are related to the | ||
180 | ; last request the process has served. Otherwise informations are related to | ||
181 | ; the current request being served. | ||
182 | ; Example output: | ||
183 | ; ************************ | ||
184 | ; pid: 31330 | ||
185 | ; state: Running | ||
186 | ; start time: 01/Jul/2011:17:53:49 +0200 | ||
187 | ; start since: 63087 | ||
188 | ; requests: 12808 | ||
189 | ; request duration: 1250261 | ||
190 | ; request method: GET | ||
191 | ; request URI: /test_mem.php?N=10000 | ||
192 | ; content length: 0 | ||
193 | ; user: - | ||
194 | ; script: /home/fat/web/docs/php/test_mem.php | ||
195 | ; last request cpu: 0.00 | ||
196 | ; last request memory: 0 | ||
197 | ; | ||
198 | ; Note: There is a real-time FPM status monitoring sample web page available | ||
199 | ; It's available in: ${prefix}/share/fpm/status.html | ||
200 | ; | ||
201 | ; Note: The value must start with a leading slash (/). The value can be | ||
202 | ; anything, but it may not be a good idea to use the .php extension or it | ||
203 | ; may conflict with a real PHP file. | ||
204 | ; Default Value: not set | ||
205 | ;pm.status_path = /status | ||
206 | |||
207 | ; The ping URI to call the monitoring page of FPM. If this value is not set, no | ||
208 | ; URI will be recognized as a ping page. This could be used to test from outside | ||
209 | ; that FPM is alive and responding, or to | ||
210 | ; - create a graph of FPM availability (rrd or such); | ||
211 | ; - remove a server from a group if it is not responding (load balancing); | ||
212 | ; - trigger alerts for the operating team (24/7). | ||
213 | ; Note: The value must start with a leading slash (/). The value can be | ||
214 | ; anything, but it may not be a good idea to use the .php extension or it | ||
215 | ; may conflict with a real PHP file. | ||
216 | ; Default Value: not set | ||
217 | ;ping.path = /ping | ||
218 | |||
219 | ; This directive may be used to customize the response of a ping request. The | ||
220 | ; response is formatted as text/plain with a 200 response code. | ||
221 | ; Default Value: pong | ||
222 | ;ping.response = pong | ||
223 | |||
224 | ; The access log file | ||
225 | ; Default: not set | ||
226 | ;access.log = log/$pool.access.log | ||
227 | |||
228 | ; The access log format. | ||
229 | ; The following syntax is allowed | ||
230 | ; %%: the '%' character | ||
231 | ; %C: %CPU used by the request | ||
232 | ; it can accept the following format: | ||
233 | ; - %{user}C for user CPU only | ||
234 | ; - %{system}C for system CPU only | ||
235 | ; - %{total}C for user + system CPU (default) | ||
236 | ; %d: time taken to serve the request | ||
237 | ; it can accept the following format: | ||
238 | ; - %{seconds}d (default) | ||
239 | ; - %{miliseconds}d | ||
240 | ; - %{mili}d | ||
241 | ; - %{microseconds}d | ||
242 | ; - %{micro}d | ||
243 | ; %e: an environment variable (same as $_ENV or $_SERVER) | ||
244 | ; it must be associated with embraces to specify the name of the env | ||
245 | ; variable. Some exemples: | ||
246 | ; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e | ||
247 | ; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e | ||
248 | ; %f: script filename | ||
249 | ; %l: content-length of the request (for POST request only) | ||
250 | ; %m: request method | ||
251 | ; %M: peak of memory allocated by PHP | ||
252 | ; it can accept the following format: | ||
253 | ; - %{bytes}M (default) | ||
254 | ; - %{kilobytes}M | ||
255 | ; - %{kilo}M | ||
256 | ; - %{megabytes}M | ||
257 | ; - %{mega}M | ||
258 | ; %n: pool name | ||
259 | ; %o: ouput header | ||
260 | ; it must be associated with embraces to specify the name of the header: | ||
261 | ; - %{Content-Type}o | ||
262 | ; - %{X-Powered-By}o | ||
263 | ; - %{Transfert-Encoding}o | ||
264 | ; - .... | ||
265 | ; %p: PID of the child that serviced the request | ||
266 | ; %P: PID of the parent of the child that serviced the request | ||
267 | ; %q: the query string | ||
268 | ; %Q: the '?' character if query string exists | ||
269 | ; %r: the request URI (without the query string, see %q and %Q) | ||
270 | ; %R: remote IP address | ||
271 | ; %s: status (response code) | ||
272 | ; %t: server time the request was received | ||
273 | ; it can accept a strftime(3) format: | ||
274 | ; %d/%b/%Y:%H:%M:%S %z (default) | ||
275 | ; %T: time the log has been written (the request has finished) | ||
276 | ; it can accept a strftime(3) format: | ||
277 | ; %d/%b/%Y:%H:%M:%S %z (default) | ||
278 | ; %u: remote user | ||
279 | ; | ||
280 | ; Default: "%R - %u %t \"%m %r\" %s" | ||
281 | ;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" | ||
282 | |||
283 | ; The log file for slow requests | ||
284 | ; Default Value: not set | ||
285 | ; Note: slowlog is mandatory if request_slowlog_timeout is set | ||
286 | ;slowlog = log/$pool.log.slow | ||
287 | |||
288 | ; The timeout for serving a single request after which a PHP backtrace will be | ||
289 | ; dumped to the 'slowlog' file. A value of '0s' means 'off'. | ||
290 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) | ||
291 | ; Default Value: 0 | ||
292 | ;request_slowlog_timeout = 0 | ||
293 | |||
294 | ; The timeout for serving a single request after which the worker process will | ||
295 | ; be killed. This option should be used when the 'max_execution_time' ini option | ||
296 | ; does not stop script execution for some reason. A value of '0' means 'off'. | ||
297 | ; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) | ||
298 | ; Default Value: 0 | ||
299 | ;request_terminate_timeout = 0 | ||
300 | |||
301 | ; Set open file descriptor rlimit. | ||
302 | ; Default Value: system defined value | ||
303 | ;rlimit_files = 1024 | ||
304 | |||
305 | ; Set max core size rlimit. | ||
306 | ; Possible Values: 'unlimited' or an integer greater or equal to 0 | ||
307 | ; Default Value: system defined value | ||
308 | ;rlimit_core = 0 | ||
309 | |||
310 | ; Chroot to this directory at the start. This value must be defined as an | ||
311 | ; absolute path. When this value is not set, chroot is not used. | ||
312 | ; Note: you can prefix with '$prefix' to chroot to the pool prefix or one | ||
313 | ; of its subdirectories. If the pool prefix is not set, the global prefix | ||
314 | ; will be used instead. | ||
315 | ; Note: chrooting is a great security feature and should be used whenever | ||
316 | ; possible. However, all PHP paths will be relative to the chroot | ||
317 | ; (error_log, sessions.save_path, ...). | ||
318 | ; Default Value: not set | ||
319 | ; chroot = $prefix | ||
320 | |||
321 | ; Chdir to this directory at the start. | ||
322 | ; Note: relative path can be used. | ||
323 | ; Default Value: current directory or / when chroot | ||
324 | ; chdir = / | ||
325 | |||
326 | ; Redirect worker stdout and stderr into main error log. If not set, stdout and | ||
327 | ; stderr will be redirected to /dev/null according to FastCGI specs. | ||
328 | ; Note: on highloaded environement, this can cause some delay in the page | ||
329 | ; process time (several ms). | ||
330 | ; Default Value: no | ||
331 | ;catch_workers_output = yes | ||
332 | |||
333 | ; Limits the extensions of the main script FPM will allow to parse. This can | ||
334 | ; prevent configuration mistakes on the web server side. You should only limit | ||
335 | ; FPM to .php extensions to prevent malicious users to use other extensions to | ||
336 | ; exectute php code. | ||
337 | ; Note: set an empty value to allow all extensions. | ||
338 | ; Default Value: .php | ||
339 | ;security.limit_extensions = .php .php3 .php4 .php5 | ||
340 | |||
341 | ; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from | ||
342 | ; the current environment. | ||
343 | ; Default Value: clean env | ||
344 | ;env[HOSTNAME] = $HOSTNAME | ||
345 | ;env[PATH] = /usr/local/bin:/usr/bin:/bin | ||
346 | ;env[TMP] = /tmp | ||
347 | ;env[TMPDIR] = /tmp | ||
348 | ;env[TEMP] = /tmp | ||
349 | |||
350 | ; Additional php.ini defines, specific to this pool of workers. These settings | ||
351 | ; overwrite the values previously defined in the php.ini. The directives are the | ||
352 | ; same as the PHP SAPI: | ||
353 | ; php_value/php_flag - you can set classic ini defines which can | ||
354 | ; be overwritten from PHP call 'ini_set'. | ||
355 | ; php_admin_value/php_admin_flag - these directives won't be overwritten by | ||
356 | ; PHP call 'ini_set' | ||
357 | ; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. | ||
358 | |||
359 | ; Defining 'extension' will load the corresponding shared extension from | ||
360 | ; extension_dir. Defining 'disable_functions' or 'disable_classes' will not | ||
361 | ; overwrite previously defined php.ini values, but will append the new value | ||
362 | ; instead. | ||
363 | |||
364 | ; Note: path INI options can be relative and will be expanded with the prefix | ||
365 | ; (pool, global or /usr) | ||
366 | |||
367 | ; Default Value: nothing is defined by default except the values in php.ini and | ||
368 | ; specified at startup with the -d argument | ||
369 | ;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com | ||
370 | ;php_flag[display_errors] = off | ||
371 | ;php_admin_value[error_log] = /var/log/php5-fpm/error.log | ||
372 | php_admin_value[error_log] = /dev/stderr | ||
373 | php_admin_flag[log_errors] = on | ||
374 | ;php_admin_value[memory_limit] = 32M |
php-fpm/files/configure
0 → 100755
1 | #!/bin/sh | ||
2 | |||
3 | set -e | ||
4 | cp /tmp/files/default-release.conf /etc/apt/apt.conf.d/default-release | ||
5 | apt-get update | ||
6 | apt-get install -y ssmtp php7.0-fpm php7.0-mysql php7.0-imagick php7.0-ldap php7.0-xml php7.0-mbstring php7.0-mcrypt php7.0-gd php7.0-apc git ffmpeg ghostscript | ||
7 | |||
8 | rm /etc/php/7.0/fpm/pool.d/www.conf | ||
9 | cp -a /tmp/files/app-defaults.conf /etc/php/7.0/fpm | ||
10 | |||
11 | cp /tmp/files/entrypoint /root/entrypoint | ||
12 | |||
13 | addgroup hostgroup | ||
14 | adduser --gecos 'Host User' --ingroup hostgroup --disabled-password hostuser | ||
15 | su - hostuser -c 'git config --global user.email hostuser@php-fpm' | ||
16 | su - hostuser -c 'git config --global user.name "Host User"' |
php-fpm/files/default-release.conf
0 → 100644
1 | APT::Default-Release "stretch"; |
php-fpm/files/entrypoint
0 → 100755
1 | #!/bin/bash | ||
2 | |||
3 | set -ex | ||
4 | |||
5 | hostuser_home="$(getent passwd hostuser | cut -f 6 -d :)" | ||
6 | |||
7 | if [[ $GID ]]; then | ||
8 | old_gid=$(getent group hostgroup | cut -f 3 -d :) | ||
9 | groupmod -g $GID hostgroup | ||
10 | find "$hostuser_home" -gid $old_gid -print0 | xargs -0r chgrp hostgroup | ||
11 | fi | ||
12 | if [[ $UID ]]; then | ||
13 | usermod -u $UID hostuser | ||
14 | fi | ||
15 | mkdir -p /run/php | ||
16 | |||
17 | update_sapi_conf() { | ||
18 | declare sapi="$1" file | ||
19 | shift | ||
20 | find "/etc/php/7.0/$sapi/conf.d" -name '97-app-*' -delete | ||
21 | for file in /etc/php/7.0/app.conf.d/*; do | ||
22 | if [[ -r $file ]]; then | ||
23 | ln -sf "$file" "/etc/php/7.0/$sapi/conf.d/97-app-${file##*/}" | ||
24 | fi | ||
25 | done | ||
26 | } | ||
27 | update_sapi_conf fpm | ||
28 | |||
29 | exec "$@" |
php-fpm/files/stretch.list
0 → 100644
1 | deb http://ftp.us.debian.org/debian/ stretch main contrib non-free |
postfix/Dockerfile
0 → 100644
postfix/files/configure
0 → 100755
postfix/files/entrypoint
0 → 100755
1 | #!/bin/bash | ||
2 | |||
3 | set -ex | ||
4 | |||
5 | hostuser_home="$(getent passwd hostuser | cut -f 6 -d :)" | ||
6 | |||
7 | if [[ $GID ]]; then | ||
8 | old_gid=$(getent group hostgroup | cut -f 3 -d :) | ||
9 | groupmod -g $GID hostgroup | ||
10 | find "$hostuser_home" -gid $old_gid -print0 | xargs -0r chgrp hostgroup | ||
11 | fi | ||
12 | if [[ $UID ]]; then | ||
13 | usermod -u $UID hostuser | ||
14 | fi | ||
15 | |||
16 | HOSTNAME=$(hostname -f) | ||
17 | |||
18 | postconf -e \ | ||
19 | "myhostname = ${POSTFIX_MAILNAME:-$HOSTNAME}" \ | ||
20 | "myorigin = app" \ | ||
21 | "mydestination = $HOSTNAME, localhost.localdomain, localhost, app" \ | ||
22 | "mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/8 172.0.0.0/8 192.168.0.0/16"\ | ||
23 | "inet_protocols = all" \ | ||
24 | "relayhost = $POSTFIX_RELAYHOST" \ | ||
25 | "virtual_maps = hash:/etc/postfix/virtual, regexp:/etc/postfix/virtual-regexp" \ | ||
26 | "home_mailbox = Maildir/" \ | ||
27 | && true | ||
28 | |||
29 | : > /etc/postfix/virtual | ||
30 | postmap /etc/postfix/virtual | ||
31 | |||
32 | : ${POSTFIX_FORWARD_APP:=hostuser+app@localhost} | ||
33 | : ${POSTFIX_FORWARD_CATCHALL:=hostuser+catchall@localhost} | ||
34 | |||
35 | POSTFIX_FORWARD_APP_quoted="$(echo "$POSTFIX_FORWARD_APP" | sed 's/\([][\\+*.$^()]\)/\\\1/g')" | ||
36 | POSTFIX_FORWARD_CATCHALL_quoted="$(echo "$POSTFIX_FORWARD_CATCHALL" | sed 's/\([][\\+*.$^()]\)/\\\1/g')" | ||
37 | ( | ||
38 | echo "/.+@app/ $POSTFIX_FORWARD_APP" | ||
39 | if [[ $POSTFIX_CATCHALL ]]; then | ||
40 | echo "if !/^($POSTFIX_FORWARD_APP_quoted|$POSTFIX_FORWARD_CATCHALL_quoted)/" | ||
41 | echo "/.+@.+/ $POSTFIX_FORWARD_CATCHALL" | ||
42 | echo "endif" | ||
43 | fi | ||
44 | ) > /etc/postfix/virtual-regexp | ||
45 | |||
46 | cp /etc/resolv.conf /etc/services /var/spool/postfix/etc | ||
47 | |||
48 | /etc/init.d/rsyslog start | ||
49 | exec "$@" |
postfix/files/rsyslog-stderr.conf
0 → 100644
1 | *.* /proc/1/fd/2 |
roundcube/Dockerfile
0 → 100644
roundcube/files/apache-mail-container.conf
0 → 100644
1 | Alias / /var/lib/roundcube/ |
roundcube/files/configure
0 → 100755
1 | #!/bin/sh | ||
2 | |||
3 | set -e | ||
4 | |||
5 | export DEBIAN_FRONTEND=noninteractive | ||
6 | |||
7 | apt-get update | ||
8 | apt-get install -y ssmtp roundcube-sqlite3 roundcube roundcube-plugins | ||
9 | |||
10 | sed -i "/default_host/c\$config['default_host'] = 'imap';" /etc/roundcube/config.inc.php | ||
11 | sed -i "/smtp_server/c\$config['smtp_server'] = 'smtp';" /etc/roundcube/config.inc.php | ||
12 | |||
13 | for plugin in jqueryui zipdownload; do | ||
14 | cp -a /var/lib/roundcube/plugins/$plugin/config.inc.php.dist /etc/roundcube/plugins/$plugin | ||
15 | done | ||
16 | |||
17 | cp /tmp/files/apache-mail-container.conf /etc/apache2/conf-enabled | ||
18 | |||
19 | cp /tmp/files/entrypoint /sbin/entrypoint | ||
20 | |||
21 | addgroup hostgroup | ||
22 | adduser --gecos 'Host User' --ingroup hostgroup --disabled-password hostuser |
roundcube/files/entrypoint
0 → 100755
1 | #!/bin/bash | ||
2 | |||
3 | set -ex | ||
4 | |||
5 | hostuser_home="$(getent passwd hostuser | cut -f 6 -d :)" | ||
6 | |||
7 | if [[ $GID ]]; then | ||
8 | old_gid=$(getent group hostgroup | cut -f 3 -d :) | ||
9 | groupmod -g $GID hostgroup | ||
10 | find "$hostuser_home" -gid $old_gid -print0 | xargs -0r chgrp hostgroup | ||
11 | fi | ||
12 | if [[ $UID ]]; then | ||
13 | usermod -u $UID hostuser | ||
14 | fi | ||
15 | |||
16 | . /etc/apache2/envvars | ||
17 | |||
18 | exec "$@" |
-
Please register or sign in to post a comment