mirror of
https://github.com/casjaysdevdocker/lighttpd
synced 2026-10-12 02:12:57 -04:00
🗃️ Committing everything that changed 🗃️
This commit is contained in:
35 files changed
+425
-112
No files matched your search
File renamed without changes.
+64
-42
@@ -1,73 +1,95 @@
|
||||
FROM casjaysdevdocker/php:latest AS build
|
||||
FROM casjaysdevdocker/alpine:latest AS build
|
||||
|
||||
ARG alpine_version="v3.16"
|
||||
ARG ALPINE_VERSION="v3.16"
|
||||
|
||||
ARG TIMEZONE="America/New_York" \
|
||||
IMAGE_NAME="lighttpd" \
|
||||
LICENSE="MIT" \
|
||||
PORTS="80"
|
||||
ARG DEFAULT_DATA_DIR="/usr/local/share/template-files/data" \
|
||||
DEFAULT_CONF_DIR="/usr/local/share/template-files/config" \
|
||||
DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults"
|
||||
|
||||
ENV TZ="$TIMEZONE" \
|
||||
SHELL="/bin/bash" \
|
||||
ENV LANG=en_US.utf8 \
|
||||
ENV=ENV=~/.bashrc \
|
||||
TZ="America/New_York" \
|
||||
SHELL="/bin/sh" \
|
||||
TERM="xterm-256color" \
|
||||
HOSTNAME="${HOSTNAME:-casjaysdev-$IMAGE_NAME}"
|
||||
|
||||
COPY ./rootfs/. /
|
||||
|
||||
RUN set -ex; \
|
||||
rm -Rf "/etc/apk/repositories"; \
|
||||
mkdir -p "/usr/local/share/template-files/config/lighttpd/defaults" ; \
|
||||
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 ; \
|
||||
mkdir -p "${DEFAULT_DATA_DIR}" "${DEFAULT_CONF_DIR}" "${DEFAULT_TEMPLATE_DIR}"; \
|
||||
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 \
|
||||
bash iproute2 \
|
||||
lighttpd \
|
||||
lighttpd-mod_auth \
|
||||
lighttpd-mod_webdav && \
|
||||
cp -Rf "/etc/lighttpd/." "/usr/local/share/template-files/config/lighttpd/defaults/"
|
||||
cp -Rf "/etc/lighttpd" "/usr/local/share/template-files/config/lighttpd/defaults/lighttpd"
|
||||
|
||||
COPY ./bin/. /usr/local/bin/
|
||||
COPY ./data/. /usr/local/share/template-files/data/
|
||||
COPY ./config/. /usr/local/share/template-files/config/
|
||||
|
||||
RUN rm -Rf /bin/.gitkeep /config /data /var/cache/apk/*
|
||||
RUN echo 'Running cleanup' ; \
|
||||
rm -Rf /usr/share/doc/* /usr/share/info/* /tmp/* /var/tmp/* ; rm -Rf /usr/local/bin/.gitkeep /usr/local/bin/.gitkeep /config /data /var/cache/apk/* ; \
|
||||
rm -rf /lib/systemd/system/multi-user.target.wants/* ; \
|
||||
rm -rf /etc/systemd/system/*.wants/* ; \
|
||||
rm -rf /lib/systemd/system/local-fs.target.wants/* ; \
|
||||
rm -rf /lib/systemd/system/sockets.target.wants/*udev* ; \
|
||||
rm -rf /lib/systemd/system/sockets.target.wants/*initctl* ; \
|
||||
rm -rf /lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup* ; \
|
||||
rm -rf /lib/systemd/system/systemd-update-utmp* ; \
|
||||
if [ -d "/lib/systemd/system/sysinit.target.wants" ]; then cd "/lib/systemd/system/sysinit.target.wants" && rm $(ls | grep -v systemd-tmpfiles-setup) ; fi
|
||||
|
||||
FROM scratch
|
||||
ARG BUILD_DATE="2022-10-10" \
|
||||
BUILD_VERSION="latest"
|
||||
|
||||
ARG \
|
||||
SERVICE_PORT="80" \
|
||||
EXPOSE_PORTS="80" \
|
||||
PHP_SERVER="lighttpd" \
|
||||
NODE_VERSION="14" \
|
||||
NODE_MANAGER="system" \
|
||||
BUILD_VERSION="latest" \
|
||||
LICENSE="MIT" \
|
||||
IMAGE_NAME="lighttpd" \
|
||||
BUILD_DATE="Tue 18 Oct 2022 01:14:04 PM EDT" \
|
||||
TIMEZONE="America/New_York"
|
||||
|
||||
LABEL maintainer="CasjaysDev <docker-admin@casjaysdev.com>" \
|
||||
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"
|
||||
org.opencontainers.image.vcs-type="Git" \
|
||||
org.opencontainers.image.name="${IMAGE_NAME}" \
|
||||
org.opencontainers.image.base.name="${IMAGE_NAME}" \
|
||||
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/${IMAGE_NAME}" \
|
||||
org.opencontainers.image.vcs-url="https://github.com/casjaysdevdocker/${IMAGE_NAME}" \
|
||||
org.opencontainers.image.url.source="https://github.com/casjaysdevdocker/${IMAGE_NAME}" \
|
||||
org.opencontainers.image.documentation="https://hub.docker.com/r/casjaysdevdocker/${IMAGE_NAME}" \
|
||||
org.opencontainers.image.description="Containerized version of ${IMAGE_NAME}"
|
||||
|
||||
ENV SHELL="/bin/bash" \
|
||||
ENV LANG=en_US.utf8 \
|
||||
ENV=~/.bashrc \
|
||||
SHELL="/bin/bash" \
|
||||
PORT="${SERVICE_PORT}" \
|
||||
TERM="xterm-256color" \
|
||||
HOSTNAME="casjaysdev-lighttpd" \
|
||||
PHP_SERVER="${PHP_SERVER}" \
|
||||
CONTAINER_NAME="${IMAGE_NAME}" \
|
||||
TZ="${TZ:-America/New_York}" \
|
||||
TIMEZONE="$$TIMEZONE" \
|
||||
PHP_SERVER="none" \
|
||||
PORT="80"
|
||||
TIMEZONE="${TZ:-$TIMEZONE}" \
|
||||
HOSTNAME="casjaysdev-${IMAGE_NAME}"
|
||||
|
||||
COPY --from=build /. /
|
||||
|
||||
USER root
|
||||
WORKDIR /root
|
||||
|
||||
VOLUME [ "/config","/data" ]
|
||||
|
||||
EXPOSE $PORTS
|
||||
EXPOSE $EXPOSE_PORTS
|
||||
|
||||
ENTRYPOINT [ "tini", "-p", "SIGTERM", "--" ]
|
||||
CMD [ "/usr/local/bin/entrypoint-lighttpd.sh" ]
|
||||
#CMD [ "" ]
|
||||
ENTRYPOINT [ "tini", "-p", "SIGTERM", "--", "/usr/local/bin/entrypoint-lighttpd.sh" ]
|
||||
HEALTHCHECK --start-period=1m --interval=2m --timeout=3s CMD [ "/usr/local/bin/entrypoint-lighttpd.sh", "healthcheck" ]
|
||||
|
||||
@@ -1,70 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
##@Version : 202202020147-git
|
||||
# @Author : Jason Hempstead
|
||||
# @Contact : jason@casjaysdev.com
|
||||
# @License : WTFPL
|
||||
# @ReadME : docker-entrypoint --help
|
||||
# @Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments
|
||||
# @Created : Wednesday, Feb 02, 2022 01:47 EST
|
||||
# @File : docker-entrypoint
|
||||
# @Description :
|
||||
# @TODO :
|
||||
# @Other :
|
||||
# @Resource :
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set bash options
|
||||
[ -n "$DEBUG" ] && set -x
|
||||
set -o pipefail
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
APPNAME="$(basename "$0")"
|
||||
VERSION="202202020147-git"
|
||||
USER="${SUDO_USER:-${USER}}"
|
||||
HOME="${USER_HOME:-${HOME}}"
|
||||
SRC_DIR="${BASH_SOURCE%/*}"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
HOSTADMIN="${APACHE_HOSTADMIN:-admin@localhost}"
|
||||
CONFIG="${APACHE_CONF:-/config/server.conf}"
|
||||
|
||||
export TZ="${TZ:-America/New_York}"
|
||||
export HOSTNAME="${HOSTNAME:-casjaysdev-lighttpd}"
|
||||
|
||||
[ -n "${TZ}" ] && echo "${TZ}" >/etc/timezone
|
||||
[ -n "${HOSTNAME}" ] && echo "${HOSTNAME}" >/etc/hostname
|
||||
[ -n "${HOSTNAME}" ] && echo "127.0.0.1 $HOSTNAME localhost" >/etc/hosts
|
||||
[ -f "/usr/share/zoneinfo/${TZ}" ] && ln -sf "/usr/share/zoneinfo/${TZ}" "/etc/localtime"
|
||||
|
||||
if [ -f "/config/lighttpd.conf" ]; then
|
||||
cp -Rf "/config/lighttpd.conf" "/etc/lighttpd/lighttpd.conf"
|
||||
else
|
||||
mkdir -p "/config/"
|
||||
cp -Rf "/etc/lighttpd/lighttpd.conf" "/config/lighttpd.conf"
|
||||
fi
|
||||
|
||||
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
|
||||
|
||||
echo "127.0.0.1 $HOSTNAME localhost" >/etc/hosts
|
||||
|
||||
case "$1" in
|
||||
|
||||
healthcheck)
|
||||
if curl -q -LSsf -o /dev/null -s -w "200" "http://localhost/server-health"; then
|
||||
echo "OK"
|
||||
exit 0
|
||||
else
|
||||
echo "FAIL"
|
||||
exit 10
|
||||
fi
|
||||
;;
|
||||
|
||||
bash | shell | sh)
|
||||
exec /bin/bash -l
|
||||
;;
|
||||
|
||||
*)
|
||||
exec lighttpd -f /config/lighttpd.conf -D
|
||||
;;
|
||||
esac
|
||||
File renamed without changes.
File renamed without changes.
Executable
+237
@@ -0,0 +1,237 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
##@Version : 202210181314-git
|
||||
# @@Author : Jason Hempstead
|
||||
# @@Contact : jason@casjaysdev.com
|
||||
# @@License : LICENSE.md
|
||||
# @@ReadME : entrypoint-lighttpd.sh --help
|
||||
# @@Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments
|
||||
# @@Created : Tuesday, Oct 18, 2022 13:14 EDT
|
||||
# @@File : entrypoint-lighttpd.sh
|
||||
# @@Description :
|
||||
# @@Changelog : New script
|
||||
# @@TODO : Better documentation
|
||||
# @@Other :
|
||||
# @@Resource :
|
||||
# @@Terminal App : no
|
||||
# @@sudo/root : no
|
||||
# @@Template : other/docker-entrypoint
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set bash options
|
||||
[ -n "$DEBUG" ] && set -x
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
APPNAME="$(basename "$0" 2>/dev/null)"
|
||||
VERSION="202210181314-git"
|
||||
HOME="${USER_HOME:-$HOME}"
|
||||
USER="${SUDO_USER:-$USER}"
|
||||
RUN_USER="${SUDO_USER:-$USER}"
|
||||
SCRIPT_SRC_DIR="${BASH_SOURCE%/*}"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set functions
|
||||
__exec_command() {
|
||||
local exitCode=0
|
||||
local cmd="${*:-bash -l}"
|
||||
echo "Executing command: $cmd"
|
||||
eval "$cmd" || exitCode=1
|
||||
[ "$exitCode" = 0 ] || exitCode=10
|
||||
return ${exitCode:-$?}
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Additional functions
|
||||
__pgrep() { ps aux 2>/dev/null | grep -F "$@" | grep -qv 'grep' || return 10; }
|
||||
__find() { find "$1" -mindepth 1 -type f,d 2>/dev/null | grep '^' || return 10; }
|
||||
__curl() { curl -q -LSsf -o /dev/null -s -w "200" "$@" 2>/dev/null || return 10; }
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__certbot() {
|
||||
[ -n "$SSL_CERT_BOT" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; }
|
||||
certbot certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMANNAME -d $DOMANNAME \
|
||||
--put-all-related-files-into "$SSL_DIR" -key-path "$SSL_KEY" -fullchain-path "$SSL_CERT"
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__heath_check() {
|
||||
status=0 health="Good"
|
||||
__pgrep "${1:-$SERVICE_NAME}" || status=$((status + 1))
|
||||
#__curl "http://localhost:$HTTP_PORT/server-health" || status=$((status + 1))
|
||||
[ "$status" -eq 0 ] || health="Errors reported see docker logs --follow $CONTAINER_NAME"
|
||||
echo "$(uname -s) $(uname -m) is running and the health is: $health"
|
||||
return ${status:-$?}
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# export functions
|
||||
export -f __exec_command __pgrep __find __curl __heath_check
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Define default variables - do not change these - redifine with -e or set under Additional
|
||||
DISPLAY="${DISPLAY:-}"
|
||||
LANG="${LANG:-C.UTF-8}"
|
||||
DOMANNAME="${DOMANNAME:-}"
|
||||
TZ="${TZ:-America/New_York}"
|
||||
HTTP_PORT="${HTTP_PORT:-80}"
|
||||
HTTPS_PORT="${HTTPS_PORT:-443}"
|
||||
SERVICE_PORT="${SERVICE_PORT:-}"
|
||||
SERVICE_NAME="${CONTAINER_NAME}"
|
||||
HOSTNAME="${HOSTNAME:-casjaysdev-lighttpd}"
|
||||
HOSTADMIN="${HOSTADMIN:-root@${DOMANNAME:-$HOSTNAME}}"
|
||||
SSL_CERT_BOT="${SSL_CERT_BOT:-false}"
|
||||
SSL_ENABLED="${SSL_ENABLED:-false}"
|
||||
SSL_DIR="${SSL_DIR:-/config/ssl}"
|
||||
SSL_CA="${SSL_CA:-$SSL_DIR/ca.crt}"
|
||||
SSL_KEY="${SSL_KEY:-$SSL_DIR/server.key}"
|
||||
SSL_CERT="${SSL_CERT:-$SSL_DIR/server.crt}"
|
||||
SSL_CONTAINER_DIR="${SSL_CONTAINER_DIR:-/etc/ssl/CA}"
|
||||
WWW_ROOT_DIR="${WWW_ROOT_DIR:-/data/htdocs}"
|
||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
||||
DEFAULT_DATA_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/data}"
|
||||
DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
||||
DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
||||
CONTAINER_IP_ADDRESS="$(ip a | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/*||g')"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Additional variables and variable overrides
|
||||
#export SERVICE_NAME=""
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# export variables
|
||||
export LANG TZ DOMANNAME HOSTNAME HOSTADMIN SSL_ENABLED SSL_DIR SSL_CA SSL_KEY
|
||||
export SSL_DIR HTTP_PORT HTTPS_PORT LOCAL_BIN_DIR DEFAULT_CONF_DIR CONTAINER_IP_ADDRESS
|
||||
export SSL_CONTAINER_DIR SSL_CERT_BOT DISPLAY
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# import variables from file
|
||||
[ -f "/root/env.sh" ] && . "/root/env.sh"
|
||||
[ -f "/config/env.sh" ] && "/config/env.sh"
|
||||
[ -f "/config/.env.sh" ] && . "/config/.env.sh"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set timezone
|
||||
[ -n "${TZ}" ] && echo "${TZ}" >"/etc/timezone"
|
||||
[ -f "/usr/share/zoneinfo/${TZ}" ] && ln -sf "/usr/share/zoneinfo/${TZ}" "/etc/localtime"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set hostname
|
||||
if [ -n "${HOSTNAME}" ]; then
|
||||
echo "${HOSTNAME}" >"/etc/hostname"
|
||||
echo "127.0.0.1 ${HOSTNAME} localhost ${HOSTNAME}.local" >"/etc/hosts"
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Add domain to hosts file
|
||||
if [ -n "$DOMANNAME" ]; then
|
||||
echo "${HOSTNAME}.${DOMANNAME:-local}" >"/etc/hostname"
|
||||
echo "127.0.0.1 ${HOSTNAME} localhost ${HOSTNAME}.local" >"/etc/hosts"
|
||||
echo "${CONTAINER_IP_ADDRESS:-127.0.0.1} ${HOSTNAME}.${DOMANNAME}" >>"/etc/hosts"
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Delete any gitkeep files
|
||||
[ -d "/data" ] && rm -Rf "/data/.gitkeep" "/data"/*/*.gitkeep
|
||||
[ -d "/config" ] && rm -Rf "/config/.gitkeep" "/data"/*/*.gitkeep
|
||||
[ -f "/usr/local/bin/.gitkeep" ] && rm -Rf "/usr/local/bin/.gitkeep"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Create directories
|
||||
[ -d "/etc/ssl" ] || mkdir -p "$SSL_CONTAINER_DIR"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Create files
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
if [ "$SSL_ENABLED" = "true" ] || [ "$SSL_ENABLED" = "yes" ]; then
|
||||
if [ -f "/config/ssl/server.crt" ] && [ -f "/config/ssl/server.key" ]; then
|
||||
export SSL_ENABLED="true"
|
||||
if [ -n "$SSL_CA" ] && [ -f "$SSL_CA" ]; then
|
||||
mkdir -p "$SSL_CONTAINER_DIR/certs"
|
||||
cat "$SSL_CA" >>"/etc/ssl/certs/ca-certificates.crt"
|
||||
cp -Rf "/config/ssl/." "$SSL_CONTAINER_DIR/"
|
||||
fi
|
||||
else
|
||||
[ -d "$SSL_DIR" ] || mkdir -p "$SSL_DIR"
|
||||
create-ssl-cert
|
||||
fi
|
||||
type update-ca-certificates &>/dev/null && update-ca-certificates
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
[ -f "$SSL_CA" ] && cp -Rfv "$SSL_CA" "$SSL_CONTAINER_DIR/ca.crt"
|
||||
[ -f "$SSL_KEY" ] && cp -Rfv "$SSL_KEY" "$SSL_CONTAINER_DIR/server.key"
|
||||
[ -f "$SSL_CERT" ] && cp -Rfv "$SSL_CERT" "$SSL_CONTAINER_DIR/server.crt"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Setup bin directory
|
||||
if [ -d "/data/bin" ]; then
|
||||
for create_bin in /data/bin/*; do
|
||||
create_bin_name="$(basename "$create_bin")"
|
||||
ln -sf "$create_bin" "/usr/local/bin/$create_bin_name"
|
||||
done
|
||||
unset create_bin create_bin_name
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Create default config
|
||||
if [ -n "$DEFAULT_TEMPLATE_DIR" ] && [ -d "$DEFAULT_TEMPLATE_DIR" ]; then
|
||||
for create_template in "$DEFAULT_TEMPLATE_DIR"/*; do
|
||||
create_template_name="$(basename "$create_template")"
|
||||
if [ ! -e "/config/$create_template_name" ]; then
|
||||
cp -Rf "$create_template" "/config/$create_template_name"
|
||||
fi
|
||||
done
|
||||
unset create_template create_template_name
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Copy custom config files
|
||||
for create_config in "$DEFAULT_CONF_DIR"/*; do
|
||||
create_config_name="$(basename "$create_config")"
|
||||
if [ ! -e "/config/$create_config_name" ]; then
|
||||
cp -Rf "$create_config" "/config/$create_config_name"
|
||||
fi
|
||||
done
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Copy custom data files
|
||||
for create_data in "$DEFAULT_DATA_DIR"/*; do
|
||||
create_data_name="$(basename "$create_data")"
|
||||
if [ ! -e "/data/$create_data_name" ]; then
|
||||
cp -Rf "$create_data" "/data/$create_data_name"
|
||||
fi
|
||||
done
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Unset unneeded variables
|
||||
unset create_data create_data_name create_config create_config_name
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Create config symlinks
|
||||
if [ -d "/config" ]; then
|
||||
for create_conf in /config/*; do
|
||||
create_conf_name="$(basename "$create_conf")"
|
||||
if [ -e "/etc/$create_conf_name" ]; then
|
||||
rm -Rf "/etc/${create_conf_name:?}"
|
||||
ln -sf "$create_conf" "/etc/$create_conf_name"
|
||||
fi
|
||||
done
|
||||
unset create_conf create_conf_name
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Additional commands
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
case "$1" in
|
||||
--help) # Help message
|
||||
echo 'Docker container for '$APPNAME''
|
||||
echo "Usage: $APPNAME [healthcheck, bash, command]"
|
||||
echo "Failed command will have exit code 10"
|
||||
echo ""
|
||||
exit ${exitCode:-$?}
|
||||
;;
|
||||
|
||||
healthcheck) # Docker healthcheck
|
||||
__heath_check || exitCode=10
|
||||
exit ${exitCode:-$?}
|
||||
;;
|
||||
|
||||
*/bin/sh | */bin/bash | bash | shell | sh) # Launch shell
|
||||
shift 1
|
||||
__exec_command "${@:-/bin/bash}"
|
||||
exit ${exitCode:-$?}
|
||||
;;
|
||||
|
||||
*) # Execute primary command
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Container ip address is: $CONTAINER_IP_ADDRESS"
|
||||
start-lighttpd
|
||||
exit ${exitCode:-$?}
|
||||
else
|
||||
__exec_command "$@"
|
||||
exitCode=$?
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# end of entrypoint
|
||||
exit ${exitCode:-$?}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
Executable
+124
@@ -0,0 +1,124 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck shell=bash
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
##@Version : 202210181320-git
|
||||
# @@Author : Jason Hempstead
|
||||
# @@Contact : jason@casjaysdev.com
|
||||
# @@License : LICENSE.md
|
||||
# @@ReadME : start-lighttpd --help
|
||||
# @@Copyright : Copyright: (c) 2022 Jason Hempstead, Casjays Developments
|
||||
# @@Created : Tuesday, Oct 18, 2022 13:20 EDT
|
||||
# @@File : start-lighttpd
|
||||
# @@Description :
|
||||
# @@Changelog : New script
|
||||
# @@TODO : Better documentation
|
||||
# @@Other :
|
||||
# @@Resource :
|
||||
# @@Terminal App : no
|
||||
# @@sudo/root : no
|
||||
# @@Template : other/start-service
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set functions
|
||||
__pgrep() { ps aux 2>/dev/null | grep -F "$@" | grep -qv 'grep' || return 10; }
|
||||
__find() { find "$1" -mindepth 1 -type f,d 2>/dev/null | grep '^' || return 10; }
|
||||
__curl() { curl -q -LSsf -o /dev/null -s -w "200" "$@" 2>/dev/null || return 10; }
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__certbot() {
|
||||
[ -n "$SSL_CERT_BOT" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; }
|
||||
certbot certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMANNAME -d $DOMANNAME \
|
||||
--put-all-related-files-into "$SSL_DIR" –key-path "$SSL_KEY" –fullchain-path "$SSL_CERT"
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
__heath_check() {
|
||||
status=0 health="Good"
|
||||
__pgrep "${1:-$SERVICE_NAME}" || status=$((status + 1))
|
||||
#__curl "http://localhost:$HTTP_PORT/server-health" || status=$((status + 1))
|
||||
[ "$status" -eq 0 ] || health="Errors reported see docker logs --follow $CONTAINER_NAME"
|
||||
echo "$(uname -s) $(uname -m) is running and the health is: $health"
|
||||
return ${status:-$?}
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set variables
|
||||
DISPLAY="${DISPLAY:-}"
|
||||
LANG="${LANG:-C.UTF-8}"
|
||||
DOMANNAME="${DOMANNAME:-}"
|
||||
TZ="${TZ:-America/New_York}"
|
||||
HTTP_PORT="${HTTP_PORT:-80}"
|
||||
HTTPS_PORT="${HTTPS_PORT:-443}"
|
||||
SERVICE_PORT="${SERVICE_PORT:-}"
|
||||
SERVICE_NAME="${CONTAINER_NAME}"
|
||||
HOSTNAME="${HOSTNAME:-casjaysdev-bin}"
|
||||
HOSTADMIN="${HOSTADMIN:-root@${DOMANNAME:-$HOSTNAME}}"
|
||||
SSL_CERT_BOT="${SSL_CERT_BOT:-false}"
|
||||
SSL_ENABLED="${SSL_ENABLED:-false}"
|
||||
SSL_DIR="${SSL_DIR:-/config/ssl}"
|
||||
SSL_CA="${SSL_CA:-$SSL_DIR/ca.crt}"
|
||||
SSL_KEY="${SSL_KEY:-$SSL_DIR/server.key}"
|
||||
SSL_CERT="${SSL_CERT:-$SSL_DIR/server.crt}"
|
||||
SSL_CONTAINER_DIR="${SSL_CONTAINER_DIR:-/etc/ssl/CA}"
|
||||
WWW_ROOT_DIR="${WWW_ROOT_DIR:-/data/htdocs}"
|
||||
LOCAL_BIN_DIR="${LOCAL_BIN_DIR:-/usr/local/bin}"
|
||||
DEFAULT_DATA_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/data}"
|
||||
DEFAULT_CONF_DIR="${DEFAULT_CONF_DIR:-/usr/local/share/template-files/config}"
|
||||
DEFAULT_TEMPLATE_DIR="${DEFAULT_TEMPLATE_DIR:-/usr/local/share/template-files/defaults}"
|
||||
CONTAINER_IP_ADDRESS="$(ip a | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/*||g')"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Overwrite variables
|
||||
SERVICE_NAME="lighttpd"
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Create default config
|
||||
if [ -n "$DEFAULT_TEMPLATE_DIR" ] && [ -d "$DEFAULT_TEMPLATE_DIR/$SERVICE_NAME" ]; then
|
||||
if [ ! -e "/config/$SERVICE_NAME" ]; then
|
||||
cp -Rf "$DEFAULT_TEMPLATE_DIR/$SERVICE_NAME" "/config/$SERVICE_NAME"
|
||||
fi
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Copy custom config files
|
||||
if [ -n "$DEFAULT_CONF_DIR" ] && [ ! -e "/config/$SERVICE_NAME" ]; then
|
||||
cp -Rf "$DEFAULT_CONF_DIR/$SERVICE_NAME" "/config/$SERVICE_NAME"
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Copy custom data files
|
||||
if [ -n "$DEFAULT_DATA_DIR" ] && [ ! -e "/data/$SERVICE_NAME" ]; then
|
||||
cp -Rf "$DEFAULT_DATA_DIR/$SERVICE_NAME" "/data/$SERVICE_NAME"
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Copy html files
|
||||
if [ -z "$(__find "$WWW_ROOT_DIR/www")" ] && [ -d "$DEFAULT_DATA_DIR/data/htdocs" ]; then
|
||||
cp -Rf "$DEFAULT_DATA_DIR/data/htdocs/." "$WWW_ROOT_DIR/"
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# APP Variables overrides
|
||||
[ -f "/root/env.sh" ] && . "/root/env.sh"
|
||||
[ -f "/config/env.sh" ] && "/config/env.sh"
|
||||
[ -f "/config/.env.sh" ] && . "/config/.env.sh"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Actions based on env
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# begin main app
|
||||
case "$1" in
|
||||
healthcheck)
|
||||
shift 1
|
||||
__heath_check "${SERVICE_NAME:-bash}"
|
||||
exit $?
|
||||
;;
|
||||
*)
|
||||
if __pgrep "$SERVICE_NAME"; then
|
||||
echo "$SERVICE_NAME is running"
|
||||
else
|
||||
exec lighttpd -f /config/lighttpd.conf -D
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Set exit code
|
||||
exitCode="${exitCode:-$?}"
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# End application
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# lets exit with code
|
||||
exit ${exitCode:-$?}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# end
|
||||
Whitespace-only changes.
File renamed without changes.
Whitespace-only changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Whitespace-only changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Whitespace-only changes.
Reference in new issue
Block a user