🗃️ Committing everything that changed 🗃️
89
Dockerfile
@ -1,44 +1,71 @@
|
||||
FROM casjaysdevdocker/php:latest as lighttpd
|
||||
FROM casjaysdevdocker/php:latest AS build
|
||||
|
||||
# Setup apache and php
|
||||
RUN apk -U upgrade && \
|
||||
apk --no-cache \
|
||||
add \
|
||||
ARG alpine_version="v3.16"
|
||||
|
||||
ARG TIMEZONE="America/New_York" \
|
||||
IMAGE_NAME="lighttpd" \
|
||||
LICENSE="MIT" \
|
||||
PORTS="80"
|
||||
|
||||
ENV TZ="$TIMEZONE" \
|
||||
SHELL="/bin/bash" \
|
||||
TERM="xterm-256color" \
|
||||
HOSTNAME="${HOSTNAME:-casjaysdev-$IMAGE_NAME}"
|
||||
|
||||
RUN set -ex; \
|
||||
rm -Rf "/etc/apk/repositories"; \
|
||||
echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/main" >> "/etc/apk/repositories"; \
|
||||
echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/community" >> "/etc/apk/repositories"; \
|
||||
if [ "$alpine_version" = "edge" ]; then echo "http://dl-cdn.alpinelinux.org/alpine/$alpine_version/testing" >> "/etc/apk/repositories" ; fi ; \
|
||||
apk update --update-cache && apk add \
|
||||
lighttpd \
|
||||
lighttpd-mod_auth \
|
||||
lighttpd-mod_webdav && \
|
||||
mkdir -p /htdocs /config
|
||||
lighttpd-mod_webdav
|
||||
|
||||
COPY ./bin/entrypoint-lighttpd.sh /usr/local/bin/entrypoint-lighttpd.sh
|
||||
COPY ./bin/. /usr/local/bin/
|
||||
COPY ./data/. /usr/local/share/template-files/data/
|
||||
COPY ./config/. /usr/local/share/template-files/config/
|
||||
|
||||
FROM lighttpd
|
||||
ARG BUILD_DATE="$(date +'%Y-%m-%d %H:%M')"
|
||||
|
||||
LABEL \
|
||||
org.label-schema.name="lighttpd" \
|
||||
org.label-schema.description="lighttpd webserver with php8" \
|
||||
org.label-schema.url="https://hub.docker.com/r/casjaysdevdocker/lighttpd" \
|
||||
org.label-schema.vcs-url="https://github.com/casjaysdevdocker/lighttpd" \
|
||||
org.label-schema.build-date=$BUILD_DATE \
|
||||
org.label-schema.version=$BUILD_DATE \
|
||||
org.label-schema.vcs-ref=$BUILD_DATE \
|
||||
org.label-schema.license="WTFPL" \
|
||||
org.label-schema.vcs-type="Git" \
|
||||
org.label-schema.schema-version="1.0" \
|
||||
org.label-schema.vendor="CasjaysDev" \
|
||||
maintainer="CasjaysDev <docker-admin@casjaysdev.com>"
|
||||
RUN rm -Rf /bin/.gitkeep /config /data /var/cache/apk/*
|
||||
|
||||
FROM scratch
|
||||
ARG BUILD_DATE="2022-10-10" \
|
||||
BUILD_VERSION="latest"
|
||||
|
||||
LABEL maintainer="CasjaysDev <docker-admin@casjaysdev.com>" \
|
||||
description="Alpine based image with lighttpd and php8."
|
||||
org.opencontainers.image.vcs-type="Git" \
|
||||
org.opencontainers.image.name="lighttpd" \
|
||||
org.opencontainers.image.base.name="lighttpd" \
|
||||
org.opencontainers.image.license="$LICENSE" \
|
||||
org.opencontainers.image.vcs-ref="$BUILD_VERSION" \
|
||||
org.opencontainers.image.build-date="$BUILD_DATE" \
|
||||
org.opencontainers.image.version="$BUILD_VERSION" \
|
||||
org.opencontainers.image.schema-version="$BUILD_VERSION" \
|
||||
org.opencontainers.image.url="https://hub.docker.com/r/casjaysdevdocker/lighttpd" \
|
||||
org.opencontainers.image.vcs-url="https://github.com/casjaysdevdocker/lighttpd" \
|
||||
org.opencontainers.image.url.source="https://github.com/casjaysdevdocker/lighttpd" \
|
||||
org.opencontainers.image.documentation="https://hub.docker.com/r/casjaysdevdocker/lighttpd" \
|
||||
org.opencontainers.image.vendor="CasjaysDev" \
|
||||
org.opencontainers.image.authors="CasjaysDev" \
|
||||
org.opencontainers.image.description="Containerized version of lighttpd"
|
||||
|
||||
ENV PHP_SERVER=lighttpd
|
||||
ENV SHELL="/bin/bash" \
|
||||
TERM="xterm-256color" \
|
||||
HOSTNAME="casjaysdev-lighttpd" \
|
||||
TZ="${TZ:-America/New_York}" \
|
||||
TIMEZONE="$$TIMEZONE" \
|
||||
PHP_SERVER="none" \
|
||||
PORT="80"
|
||||
|
||||
EXPOSE 80
|
||||
COPY --from=build /. /
|
||||
|
||||
WORKDIR /htdocs
|
||||
VOLUME [ "/htdocs", "/config" ]
|
||||
WORKDIR /root
|
||||
|
||||
HEALTHCHECK --interval=15s --timeout=3s CMD ["/usr/local/bin/entrypoint-lighttpd.sh", "healthcheck"]
|
||||
VOLUME [ "/config","/data" ]
|
||||
|
||||
EXPOSE $PORTS
|
||||
|
||||
ENTRYPOINT [ "tini", "-p", "SIGTERM", "--" ]
|
||||
CMD [ "/usr/local/bin/entrypoint-lighttpd.sh" ]
|
||||
HEALTHCHECK --start-period=1m --interval=2m --timeout=3s CMD [ "/usr/local/bin/entrypoint-lighttpd.sh", "healthcheck" ]
|
||||
|
||||
ENTRYPOINT ["/usr/local/bin/entrypoint-lighttpd.sh"]
|
||||
|
@ -42,8 +42,8 @@ else
|
||||
cp -Rf "/etc/lighttpd/lighttpd.conf" "/config/lighttpd.conf"
|
||||
fi
|
||||
|
||||
if [ ! -f "/htdocs/www/index.html" ] || [ ! -f "/htdocs/www/index.php" ]; then
|
||||
[ -f "/htdocs/.docker_complete" ] || cp -Rf "/var/www/localhost/htdocs/." "/htdocs/www"
|
||||
if [ ! -d "/data/htdocs/www" ] || [ ! -f "/htdocs/.docker_complete" ]; then
|
||||
[ -f "/htdocs/.docker_complete" ] || cp -Rf "/usr/local/share/template-files/data/htdocs/www/." "/data/htdocs/www/"
|
||||
touch "/htdocs/.docker_complete"
|
||||
fi
|
||||
|
||||
|
321
config/lighttpd/lighttpd.conf
Normal file
@ -0,0 +1,321 @@
|
||||
###############################################################################
|
||||
# Default lighttpd.conf for Gentoo.
|
||||
# $Header: /var/cvsroot/gentoo-x86/www-servers/lighttpd/files/conf/lighttpd.conf,v 1.3 2005/09/01 14:22:35 ka0ttic Exp $
|
||||
###############################################################################
|
||||
|
||||
# {{{ variables
|
||||
var.basedir = "/data/htdocs/www"
|
||||
var.logdir = "/dev/stdout"
|
||||
var.statedir = "/var/lib/lighttpd"
|
||||
# }}}
|
||||
|
||||
# {{{ modules
|
||||
# At the very least, mod_access and mod_accesslog should be enabled.
|
||||
# All other modules should only be loaded if necessary.
|
||||
# NOTE: the order of modules is important.
|
||||
server.modules = (
|
||||
# "mod_rewrite",
|
||||
# "mod_redirect",
|
||||
# "mod_alias",
|
||||
"mod_access",
|
||||
# "mod_cml",
|
||||
# "mod_trigger_b4_dl",
|
||||
# "mod_auth",
|
||||
# "mod_status",
|
||||
# "mod_setenv",
|
||||
# "mod_proxy",
|
||||
# "mod_simple_vhost",
|
||||
# "mod_evhost",
|
||||
# "mod_userdir",
|
||||
# "mod_deflate",
|
||||
# "mod_ssi",
|
||||
# "mod_usertrack",
|
||||
# "mod_expire",
|
||||
# "mod_secdownload",
|
||||
# "mod_rrdtool",
|
||||
# "mod_webdav",
|
||||
"mod_accesslog"
|
||||
)
|
||||
# }}}
|
||||
|
||||
# {{{ includes
|
||||
include "mime-types.conf"
|
||||
# uncomment for cgi support
|
||||
# include "mod_cgi.conf"
|
||||
# uncomment for php/fastcgi support
|
||||
# include "mod_fastcgi.conf"
|
||||
# uncomment for php/fastcgi fpm support
|
||||
# include "mod_fastcgi_fpm.conf"
|
||||
# }}}
|
||||
|
||||
# {{{ server settings
|
||||
server.username = "lighttpd"
|
||||
server.groupname = "lighttpd"
|
||||
|
||||
server.document-root = var.basedir + "/htdocs"
|
||||
server.pid-file = "/tmp/lighttpd.pid"
|
||||
|
||||
server.errorlog = var.logdir + "/error.log"
|
||||
# log errors to syslog instead
|
||||
# server.errorlog-use-syslog = "enable"
|
||||
|
||||
server.indexfiles = ("index.php", "index.html","index.htm", "default.htm")
|
||||
|
||||
# server.tag = "lighttpd"
|
||||
|
||||
server.follow-symlink = "enable"
|
||||
|
||||
# event handler (defaults to "poll")
|
||||
# see performance.txt
|
||||
#
|
||||
# for >= linux-2.4
|
||||
# server.event-handler = "linux-rtsig"
|
||||
# for >= linux-2.6
|
||||
# server.event-handler = "linux-sysepoll"
|
||||
# for FreeBSD
|
||||
# server.event-handler = "freebsd-kqueue"
|
||||
|
||||
# chroot to directory (defaults to no chroot)
|
||||
# server.chroot = "/"
|
||||
|
||||
# bind to port (defaults to 80)
|
||||
# server.port = 81
|
||||
|
||||
# bind to name (defaults to all interfaces)
|
||||
# server.bind = "grisu.home.kneschke.de"
|
||||
|
||||
# error-handler for status 404
|
||||
# server.error-handler-404 = "/error-handler.html"
|
||||
# server.error-handler-404 = "/error-handler.php"
|
||||
|
||||
# Format: <errorfile-prefix><status-code>.html
|
||||
# -> ..../status-404.html for 'File not found'
|
||||
# server.errorfile-prefix = var.basedir + "/error/status-"
|
||||
|
||||
# FAM support for caching stat() calls
|
||||
# requires that lighttpd be built with USE=fam
|
||||
# server.stat-cache-engine = "fam"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_staticfile
|
||||
|
||||
# which extensions should not be handled via static-file transfer
|
||||
# (extensions that are usually handled by mod_cgi, mod_fastcgi, etc).
|
||||
static-file.exclude-extensions = (".php", ".pl", ".cgi", ".fcgi")
|
||||
# }}}
|
||||
|
||||
# {{{ mod_accesslog
|
||||
accesslog.filename = var.logdir + "/tmp/access.log"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_dirlisting
|
||||
# enable directory listings
|
||||
# dir-listing.activate = "enable"
|
||||
#
|
||||
# don't list hidden files/directories
|
||||
# dir-listing.hide-dotfiles = "enable"
|
||||
#
|
||||
# use a different css for directory listings
|
||||
# dir-listing.external-css = "/path/to/dir-listing.css"
|
||||
#
|
||||
# list of regular expressions. files that match any of the
|
||||
# specified regular expressions will be excluded from directory
|
||||
# listings.
|
||||
# dir-listing.exclude = ("^\.", "~$")
|
||||
# }}}
|
||||
|
||||
# {{{ mod_access
|
||||
# see access.txt
|
||||
|
||||
url.access-deny = ("~", ".inc")
|
||||
# }}}
|
||||
|
||||
# {{{ mod_userdir
|
||||
# see userdir.txt
|
||||
#
|
||||
# userdir.path = "public_html"
|
||||
# userdir.exclude-user = ("root")
|
||||
# }}}
|
||||
|
||||
# {{{ mod_ssi
|
||||
# see ssi.txt
|
||||
#
|
||||
# ssi.extension = (".shtml")
|
||||
# }}}
|
||||
|
||||
# {{{ mod_ssl
|
||||
# see ssl.txt
|
||||
#
|
||||
# ssl.engine = "enable"
|
||||
# ssl.pemfile = "server.pem"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_status
|
||||
# see status.txt
|
||||
#
|
||||
# status.status-url = "/server-status"
|
||||
# status.config-url = "/server-config"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_simple_vhost
|
||||
# see simple-vhost.txt
|
||||
#
|
||||
# If you want name-based virtual hosting add the next three settings and load
|
||||
# mod_simple_vhost
|
||||
#
|
||||
# document-root =
|
||||
# virtual-server-root + virtual-server-default-host + virtual-server-docroot
|
||||
# or
|
||||
# virtual-server-root + http-host + virtual-server-docroot
|
||||
#
|
||||
# simple-vhost.server-root = "/home/weigon/wwwroot/servers/"
|
||||
# simple-vhost.default-host = "grisu.home.kneschke.de"
|
||||
# simple-vhost.document-root = "/pages/"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_deflate
|
||||
# see compress.txt
|
||||
#
|
||||
# deflate.cache-dir = var.statedir + "/cache/compress"
|
||||
# deflate.mimetypes = ("text/plain", "text/html")
|
||||
# }}}
|
||||
|
||||
# {{{ mod_proxy
|
||||
# see proxy.txt
|
||||
#
|
||||
proxy.server = ( ".php" =>
|
||||
( "localhost" =>
|
||||
(
|
||||
"host" => "127.0.0.1",
|
||||
"port" => 9000
|
||||
)
|
||||
)
|
||||
)
|
||||
# }}}
|
||||
|
||||
# {{{ mod_auth
|
||||
# see authentication.txt
|
||||
#
|
||||
# auth.backend = "plain"
|
||||
# auth.backend.plain.userfile = "lighttpd.user"
|
||||
# auth.backend.plain.groupfile = "lighttpd.group"
|
||||
|
||||
# auth.backend.ldap.hostname = "localhost"
|
||||
# auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
|
||||
# auth.backend.ldap.filter = "(uid=$)"
|
||||
|
||||
# auth.require = ( "/server-status" =>
|
||||
# (
|
||||
# "method" => "digest",
|
||||
# "realm" => "download archiv",
|
||||
# "require" => "user=jan"
|
||||
# ),
|
||||
# "/server-info" =>
|
||||
# (
|
||||
# "method" => "digest",
|
||||
# "realm" => "download archiv",
|
||||
# "require" => "valid-user"
|
||||
# )
|
||||
# )
|
||||
# }}}
|
||||
|
||||
# {{{ mod_rewrite
|
||||
# see rewrite.txt
|
||||
#
|
||||
# url.rewrite = (
|
||||
# "^/$" => "/server-status"
|
||||
# )
|
||||
# }}}
|
||||
|
||||
# {{{ mod_redirect
|
||||
# see redirect.txt
|
||||
#
|
||||
# url.redirect = (
|
||||
# "^/wishlist/(.+)" => "http://www.123.org/$1"
|
||||
# )
|
||||
# }}}
|
||||
|
||||
# {{{ mod_evhost
|
||||
# define a pattern for the host url finding
|
||||
# %% => % sign
|
||||
# %0 => domain name + tld
|
||||
# %1 => tld
|
||||
# %2 => domain name without tld
|
||||
# %3 => subdomain 1 name
|
||||
# %4 => subdomain 2 name
|
||||
#
|
||||
# evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_expire
|
||||
# expire.url = (
|
||||
# "/buggy/" => "access 2 hours",
|
||||
# "/asdhas/" => "access plus 1 seconds 2 minutes"
|
||||
# )
|
||||
# }}}
|
||||
|
||||
# {{{ mod_rrdtool
|
||||
# see rrdtool.txt
|
||||
#
|
||||
# rrdtool.binary = "/usr/bin/rrdtool"
|
||||
# rrdtool.db-name = var.statedir + "/lighttpd.rrd"
|
||||
# }}}
|
||||
|
||||
# {{{ mod_setenv
|
||||
# see setenv.txt
|
||||
#
|
||||
# setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" )
|
||||
# setenv.add-response-header = ( "X-Secret-Message" => "42" )
|
||||
# }}}
|
||||
|
||||
# {{{ mod_trigger_b4_dl
|
||||
# see trigger_b4_dl.txt
|
||||
#
|
||||
# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
|
||||
# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
|
||||
# trigger-before-download.trigger-url = "^/trigger/"
|
||||
# trigger-before-download.download-url = "^/download/"
|
||||
# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
|
||||
# trigger-before-download.trigger-timeout = 10
|
||||
# }}}
|
||||
|
||||
# {{{ mod_cml
|
||||
# see cml.txt
|
||||
#
|
||||
# don't forget to add index.cml to server.indexfiles
|
||||
# cml.extension = ".cml"
|
||||
# cml.memcache-hosts = ( "127.0.0.1:11211" )
|
||||
# }}}
|
||||
|
||||
# {{{ mod_webdav
|
||||
# see webdav.txt
|
||||
#
|
||||
# $HTTP["url"] =~ "^/dav($|/)" {
|
||||
# webdav.activate = "enable"
|
||||
# webdav.is-readonly = "enable"
|
||||
# }
|
||||
# }}}
|
||||
|
||||
# {{{ extra rules
|
||||
#
|
||||
# set Content-Encoding and reset Content-Type for browsers that
|
||||
# support decompressing on-thy-fly (requires mod_setenv)
|
||||
# $HTTP["url"] =~ "\.gz$" {
|
||||
# setenv.add-response-header = ("Content-Encoding" => "x-gzip")
|
||||
# mimetype.assign = (".gz" => "text/plain")
|
||||
# }
|
||||
|
||||
# $HTTP["url"] =~ "\.bz2$" {
|
||||
# }
|
||||
#
|
||||
# }}}
|
||||
|
||||
# {{{ debug
|
||||
# debug.log-request-header = "enable"
|
||||
# debug.log-response-header = "enable"
|
||||
# debug.log-request-handling = "enable"
|
||||
# debug.log-file-not-found = "enable"
|
||||
# }}}
|
||||
|
||||
# vim: set ft=conf foldmethod=marker et :
|
||||
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 429 B |