Initial commit

main
Jerry Aldrich 3 years ago
commit d82194a2b4
  1. 22
      Dockerfile
  2. 19
      README.md
  3. 37
      entrypoint.sh
  4. 12
      index.html
  5. 29
      lighttpd.conf
  6. 71
      mime-types.conf

@ -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…
Cancel
Save