commit
d82194a2b4
6 changed files with 190 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||||||
|
FROM alpine:3.15.5 |
||||||
|
|
||||||
|
EXPOSE 8080 |
||||||
|
|
||||||
|
LABEL maintainer "me@jerryaldrichiii.com" |
||||||
|
|
||||||
|
RUN apk add --no-cache lighttpd=1.4.64-r0 |
||||||
|
|
||||||
|
RUN chown -R lighttpd /var/log/lighttpd |
||||||
|
|
||||||
|
RUN mkdir -p /etc/lighttpd/conf.d |
||||||
|
|
||||||
|
USER lighttpd |
||||||
|
|
||||||
|
COPY lighttpd.conf /etc/lighttpd/lighttpd.conf |
||||||
|
COPY mime-types.conf /etc/lighttpd/mime-types.conf |
||||||
|
|
||||||
|
# Copying as lighttpd so that a user's entrypoint can remove/overwrite it |
||||||
|
COPY --chown=lighttpd index.html /srv/html/index.html |
||||||
|
|
||||||
|
COPY entrypoint.sh /entrypoint.sh |
||||||
|
ENTRYPOINT ["/entrypoint.sh"] |
@ -0,0 +1,19 @@ |
|||||||
|
# Lighttpd |
||||||
|
|
||||||
|
I couldn't find a non-root Lighttpd container, so I made one. |
||||||
|
|
||||||
|
It runs with UID=100 and GID=101 |
||||||
|
|
||||||
|
## Serving Static Websites |
||||||
|
|
||||||
|
Place your files into `/srv/html/` to serve them. |
||||||
|
|
||||||
|
## Customizing Startup |
||||||
|
|
||||||
|
Any scripts placed in `/docker-entrypoint.d/` will be executed alphabetically |
||||||
|
prior to `entrypoint.sh` |
||||||
|
|
||||||
|
## Adding extra config |
||||||
|
|
||||||
|
Any .conf files included into `/etc/lighttpd/conf.d` will be appended to the |
||||||
|
included `lighttpd.conf`. |
@ -0,0 +1,37 @@ |
|||||||
|
#!/bin/sh |
||||||
|
|
||||||
|
# CREDIT: https://github.com/nginxinc/docker-nginx/blob/f3d86e99ba2db5d9918ede7b094fcad7b9128cd8/mainline/alpine/docker-entrypoint.sh |
||||||
|
|
||||||
|
set -e |
||||||
|
|
||||||
|
if [ -n "${LIGHTTPD_QUIET_LOGS:-}" ]; then |
||||||
|
exec 3>/dev/null |
||||||
|
else |
||||||
|
exec 3>&1 |
||||||
|
fi |
||||||
|
|
||||||
|
if /usr/bin/find "/docker-entrypoint.d/" -mindepth 1 -maxdepth 1 -type f -print -quit 2>/dev/null | read v; then |
||||||
|
echo >&3 "$0: /docker-entrypoint.d/ is not empty, will run .sh files there prior to regular entrypoint" |
||||||
|
|
||||||
|
echo >&3 "$0: Looking for shell scripts in /docker-entrypoint.d/" |
||||||
|
find "/docker-entrypoint.d/" -follow -type f -print | sort -V | while read -r f; do |
||||||
|
case "$f" in |
||||||
|
*.sh) |
||||||
|
if [ -x "$f" ]; then |
||||||
|
echo >&3 "$0: Launching $f"; |
||||||
|
"$f" |
||||||
|
else |
||||||
|
# warn on shell scripts without exec bit |
||||||
|
echo >&3 "$0: Ignoring $f, not executable"; |
||||||
|
fi |
||||||
|
;; |
||||||
|
*) echo >&3 "$0: Ignoring $f";; |
||||||
|
esac |
||||||
|
done |
||||||
|
|
||||||
|
echo >&3 "$0: Configuration complete; ready for start up" |
||||||
|
else |
||||||
|
echo >&3 "$0: No files found in /docker-entrypoint.d/, proceeding to regular entrypoint" |
||||||
|
fi |
||||||
|
|
||||||
|
lighttpd -D -f /etc/lighttpd/lighttpd.conf |
@ -0,0 +1,12 @@ |
|||||||
|
<!DOCTYPE HTML> |
||||||
|
<html> |
||||||
|
<head> |
||||||
|
<title>Content Missing</title> |
||||||
|
<meta name="Description" content="Someone didn't mount any content..."> |
||||||
|
</head> |
||||||
|
<body> |
||||||
|
<p>This is just a placeholder page.</p> |
||||||
|
<p>You should mount static content in /srv/html/</p> |
||||||
|
<p>See README.md for more details</p> |
||||||
|
<body> |
||||||
|
</html> |
@ -0,0 +1,29 @@ |
|||||||
|
var.logdir = "/var/log/lighttpd" |
||||||
|
var.statedir = "/var/lib/lighttpd" |
||||||
|
|
||||||
|
server.modules = ( |
||||||
|
"mod_access", |
||||||
|
"mod_accesslog", |
||||||
|
"mod_setenv", |
||||||
|
) |
||||||
|
|
||||||
|
accesslog.filename = "/dev/fd/2" |
||||||
|
|
||||||
|
include "mime-types.conf" |
||||||
|
|
||||||
|
server.document-root = "/srv/html/" |
||||||
|
server.pid-file = "/tmp/lighttpd.pid" |
||||||
|
|
||||||
|
server.errorlog-use-syslog = "enable" |
||||||
|
accesslog.use-syslog = "enable" |
||||||
|
|
||||||
|
server.indexfiles = ("index.html", "index.htm", "default.htm") |
||||||
|
|
||||||
|
server.port = 8080 |
||||||
|
|
||||||
|
url.access-deny = ("~", ".inc") |
||||||
|
|
||||||
|
server.network-backend = "writev" |
||||||
|
server.tag = "If you're reading this you're up to no good..." |
||||||
|
|
||||||
|
include "/etc/lighttpd/conf.d/*.conf" |
@ -0,0 +1,71 @@ |
|||||||
|
mimetype.assign = ( |
||||||
|
".svg" => "image/svg+xml", |
||||||
|
".svgz" => "image/svg+xml", |
||||||
|
".pdf" => "application/pdf", |
||||||
|
".sig" => "application/pgp-signature", |
||||||
|
".spl" => "application/futuresplash", |
||||||
|
".class" => "application/octet-stream", |
||||||
|
".ps" => "application/postscript", |
||||||
|
".torrent" => "application/x-bittorrent", |
||||||
|
".dvi" => "application/x-dvi", |
||||||
|
".gz" => "application/x-gzip", |
||||||
|
".pac" => "application/x-ns-proxy-autoconfig", |
||||||
|
".swf" => "application/x-shockwave-flash", |
||||||
|
".tar.gz" => "application/x-tgz", |
||||||
|
".tgz" => "application/x-tgz", |
||||||
|
".tar" => "application/x-tar", |
||||||
|
".zip" => "application/zip", |
||||||
|
".dmg" => "application/x-apple-diskimage", |
||||||
|
".mp3" => "audio/mpeg", |
||||||
|
".m3u" => "audio/x-mpegurl", |
||||||
|
".wma" => "audio/x-ms-wma", |
||||||
|
".wax" => "audio/x-ms-wax", |
||||||
|
".ogg" => "application/ogg", |
||||||
|
".wav" => "audio/x-wav", |
||||||
|
".gif" => "image/gif", |
||||||
|
".jpg" => "image/jpeg", |
||||||
|
".jpeg" => "image/jpeg", |
||||||
|
".png" => "image/png", |
||||||
|
".xbm" => "image/x-xbitmap", |
||||||
|
".xpm" => "image/x-xpixmap", |
||||||
|
".xwd" => "image/x-xwindowdump", |
||||||
|
".css" => "text/css", |
||||||
|
".html" => "text/html", |
||||||
|
".htm" => "text/html", |
||||||
|
".js" => "text/javascript", |
||||||
|
".asc" => "text/plain", |
||||||
|
".c" => "text/plain", |
||||||
|
".h" => "text/plain", |
||||||
|
".cc" => "text/plain", |
||||||
|
".cpp" => "text/plain", |
||||||
|
".hh" => "text/plain", |
||||||
|
".hpp" => "text/plain", |
||||||
|
".conf" => "text/plain", |
||||||
|
".log" => "text/plain", |
||||||
|
".text" => "text/plain", |
||||||
|
".txt" => "text/plain", |
||||||
|
".diff" => "text/plain", |
||||||
|
".patch" => "text/plain", |
||||||
|
".ebuild" => "text/plain", |
||||||
|
".eclass" => "text/plain", |
||||||
|
".rtf" => "application/rtf", |
||||||
|
".bmp" => "image/bmp", |
||||||
|
".tif" => "image/tiff", |
||||||
|
".tiff" => "image/tiff", |
||||||
|
".ico" => "image/x-icon", |
||||||
|
".dtd" => "text/xml", |
||||||
|
".xml" => "text/xml", |
||||||
|
".mpeg" => "video/mpeg", |
||||||
|
".mpg" => "video/mpeg", |
||||||
|
".mov" => "video/quicktime", |
||||||
|
".qt" => "video/quicktime", |
||||||
|
".avi" => "video/x-msvideo", |
||||||
|
".asf" => "video/x-ms-asf", |
||||||
|
".asx" => "video/x-ms-asf", |
||||||
|
".wmv" => "video/x-ms-wmv", |
||||||
|
".bz2" => "application/x-bzip", |
||||||
|
".tbz" => "application/x-bzip-compressed-tar", |
||||||
|
".wasm" => "application/wasm", |
||||||
|
".tar.bz2" => "application/x-bzip-compressed-tar" |
||||||
|
) |
||||||
|
|
Loading…
Reference in new issue