mirror of
				https://github.com/casjaysdevdocker/wordpress
				synced 2025-11-04 01:02:29 -05:00 
			
		
		
		
	🗃️ Committing everything that changed 🗃️
This commit is contained in:
		@@ -2,3 +2,8 @@
 | 
			
		||||
.gitignore
 | 
			
		||||
.gitkeep
 | 
			
		||||
.node_modules/**
 | 
			
		||||
node_modules/**
 | 
			
		||||
**/.gitkeep
 | 
			
		||||
**/.gitignore
 | 
			
		||||
**/node_modules/**
 | 
			
		||||
**/.node_modules/**
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										141
									
								
								Dockerfile
									
									
									
									
									
								
							
							
						
						
									
										141
									
								
								Dockerfile
									
									
									
									
									
								
							@@ -1,90 +1,97 @@
 | 
			
		||||
FROM casjaysdevdocker/alpine:latest AS build
 | 
			
		||||
 | 
			
		||||
ARG BUILD_DATE \
 | 
			
		||||
  VCS_REF \
 | 
			
		||||
  PORT=80
 | 
			
		||||
ARG ALPINE_VERSION="v3.16"
 | 
			
		||||
 | 
			
		||||
ENV TERM="xterm" \
 | 
			
		||||
  DB_HOST="localhost" \
 | 
			
		||||
  DB_NAME="wordpress" \
 | 
			
		||||
  DB_USER="root" \
 | 
			
		||||
  DB_PASS="password"
 | 
			
		||||
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"
 | 
			
		||||
 | 
			
		||||
RUN apk -U upgrade && \
 | 
			
		||||
  apk add --no-cache bash curl less vim nginx ca-certificates git tzdata zip \
 | 
			
		||||
  libmcrypt-dev zlib-dev gmp-dev \
 | 
			
		||||
  freetype-dev libjpeg-turbo-dev libpng-dev \
 | 
			
		||||
  php-fpm php-json php-zlib php-xml php-xmlwriter \
 | 
			
		||||
  php-simplexml php-pdo php-phar php-openssl \
 | 
			
		||||
  php-pdo_mysql php-mysqli php-session \
 | 
			
		||||
  php-gd php-iconv php-gmp php-zip \
 | 
			
		||||
  php-curl php-opcache php-ctype \
 | 
			
		||||
  php-intl php-bcmath php-dom php-mbstring php-xmlreader \
 | 
			
		||||
  mysql-client mysql curl && \
 | 
			
		||||
  apk add -u musl && \
 | 
			
		||||
  rm -rf /var/cache/apk/* && \
 | 
			
		||||
  ln -sf /usr/sbin/php-fpm8 /usr/bin/php-fpm
 | 
			
		||||
ARG PACK_LIST="bash"
 | 
			
		||||
 | 
			
		||||
RUN /usr/bin/mysql_install_db --user=mysql --datadir=/var/lib/mysql && \
 | 
			
		||||
  sed -i 's|skip-networking|#skip-networking|g' /etc/my.cnf && \
 | 
			
		||||
  sed -i 's|#bind-address=.*|bind-address=127.0.0.1|g' /etc/my.cnf.d/mariadb-server.cnf && \
 | 
			
		||||
  sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php8/php.ini && \
 | 
			
		||||
  sed -i 's/expose_php = On/expose_php = Off/g' /etc/php8/php.ini && \
 | 
			
		||||
  sed -i "s/nginx:x:100:101:nginx:\/var\/lib\/nginx:\/sbin\/nologin/nginx:x:100:101:nginx:\/usr:\/bin\/bash/g" /etc/passwd && \
 | 
			
		||||
  sed -i "s/nginx:x:100:101:nginx:\/var\/lib\/nginx:\/sbin\/nologin/nginx:x:100:101:nginx:\/usr:\/bin\/bash/g" /etc/passwd- && \
 | 
			
		||||
  echo "mysqld_safe --datadir=/var/lib/mysql --port=3306 &" > /tmp/config && \
 | 
			
		||||
  echo "mysqladmin --silent --wait=30 ping || exit 1" >> /tmp/config && \
 | 
			
		||||
  echo "mysqladmin -u root password 'password'" >> /tmp/config && \
 | 
			
		||||
  bash /tmp/config && \
 | 
			
		||||
  rm -f /tmp/config
 | 
			
		||||
ENV LANG=en_US.UTF-8 \
 | 
			
		||||
  ENV=ENV=~/.bashrc \
 | 
			
		||||
  TZ="America/New_York" \
 | 
			
		||||
  SHELL="/bin/sh" \
 | 
			
		||||
  TERM="xterm-256color" \
 | 
			
		||||
  TIMEZONE="${TZ:-$TIMEZONE}" \
 | 
			
		||||
  HOSTNAME="casjaysdev-wordpress"
 | 
			
		||||
 | 
			
		||||
ADD ./config/nginx.conf /etc/nginx/
 | 
			
		||||
ADD ./config/php-fpm.conf /etc/php8/
 | 
			
		||||
COPY ./rootfs/. /
 | 
			
		||||
 | 
			
		||||
COPY ./bin /usr/local/bin/
 | 
			
		||||
RUN set -ex; \
 | 
			
		||||
  rm -Rf "/etc/apk/repositories"; \
 | 
			
		||||
  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 --no-cache ${PACK_LIST} && \
 | 
			
		||||
  echo
 | 
			
		||||
 | 
			
		||||
RUN chmod +x /usr/local/bin/* && \
 | 
			
		||||
  curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
 | 
			
		||||
  chmod +x wp-cli.phar && \
 | 
			
		||||
  mv wp-cli.phar /usr/bin/wp-cli && \
 | 
			
		||||
  chown nginx:nginx /usr/bin/wp-cli && \
 | 
			
		||||
  chown -Rf mysql:mysql /var/lib/mysql /run/mysqld
 | 
			
		||||
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="$(date +'%Y-%m-%d %H:%M')"
 | 
			
		||||
 | 
			
		||||
ARG \
 | 
			
		||||
  SERVICE_PORT="80" \
 | 
			
		||||
  EXPOSE_PORTS="80" \
 | 
			
		||||
  PHP_SERVER="wordpress" \
 | 
			
		||||
  NODE_VERSION="system" \
 | 
			
		||||
  NODE_MANAGER="system" \
 | 
			
		||||
  BUILD_VERSION="latest" \
 | 
			
		||||
  LICENSE="MIT" \
 | 
			
		||||
  IMAGE_NAME="wordpress" \
 | 
			
		||||
  BUILD_DATE="Sun Nov 13 12:21:28 PM EST 2022" \
 | 
			
		||||
  TIMEZONE="America/New_York"
 | 
			
		||||
 | 
			
		||||
LABEL maintainer="CasjaysDev <docker-admin@casjaysdev.com>" \
 | 
			
		||||
  alpine-version="latest" \
 | 
			
		||||
  nginx-version="latest" \
 | 
			
		||||
  php-version="latest" \
 | 
			
		||||
  wordpress-version="latest" \
 | 
			
		||||
  build="24-June-2022" \
 | 
			
		||||
  org.opencontainers.image.title="alpine-php-wordpress" \
 | 
			
		||||
  org.opencontainers.image.description="Wordpress image running on Alpine Linux" \
 | 
			
		||||
  org.opencontainers.image.authors="CasjaysDev <docker-admin@casjaysdev.com>" \
 | 
			
		||||
  org.opencontainers.image.vendor="CasjaysDev" \
 | 
			
		||||
  org.opencontainers.image.version="latest" \
 | 
			
		||||
  org.opencontainers.image.url="https://hub.docker.com/r/casjaysdev/wordpress/" \
 | 
			
		||||
  org.opencontainers.image.source="https://github.com/casjaysdev/wordpress" \
 | 
			
		||||
  org.opencontainers.image.revision=$VCS_REF \
 | 
			
		||||
  org.opencontainers.image.created=$BUILD_DATE
 | 
			
		||||
  org.opencontainers.image.authors="CasjaysDev" \
 | 
			
		||||
  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}" \
 | 
			
		||||
  com.github.containers.toolbox="false"
 | 
			
		||||
 | 
			
		||||
ENV SHELL="/bin/bash" \
 | 
			
		||||
ENV LANG=en_US.UTF-8 \
 | 
			
		||||
  ENV=~/.bashrc \
 | 
			
		||||
  SHELL="/bin/bash" \
 | 
			
		||||
  PORT="${SERVICE_PORT}" \
 | 
			
		||||
  TERM="xterm-256color" \
 | 
			
		||||
  HOSTNAME="casjaysdev-alpine" \
 | 
			
		||||
  TZ="${TZ:-America/New_York}"
 | 
			
		||||
  PHP_SERVER="${PHP_SERVER}" \
 | 
			
		||||
  CONTAINER_NAME="${IMAGE_NAME}" \
 | 
			
		||||
  TZ="${TZ:-America/New_York}" \
 | 
			
		||||
  TIMEZONE="${TZ:-$TIMEZONE}" \
 | 
			
		||||
  HOSTNAME="casjaysdev-${IMAGE_NAME}"
 | 
			
		||||
 | 
			
		||||
COPY --from=build /. /
 | 
			
		||||
 | 
			
		||||
USER root
 | 
			
		||||
WORKDIR /root
 | 
			
		||||
 | 
			
		||||
VOLUME ["/root","/config","/data"]
 | 
			
		||||
VOLUME [ "/config","/data" ]
 | 
			
		||||
 | 
			
		||||
EXPOSE $PORT
 | 
			
		||||
EXPOSE $EXPOSE_PORTS
 | 
			
		||||
 | 
			
		||||
VOLUME ["/usr/html", "/var/lib/mysql", "/var/lib/wordpress/devel" ]
 | 
			
		||||
 | 
			
		||||
HEALTHCHECK --interval=15s --timeout=3s CMD ["usr/local/bin/entrypoint-wordpress.sh", "healthcheck"]
 | 
			
		||||
ENTRYPOINT [  "tini", "-p", "SIGTERM", "--" ]
 | 
			
		||||
CMD [ "//usr/local/bin/entrypoint-wordpress.sh" ]
 | 
			
		||||
#CMD [ "" ]
 | 
			
		||||
ENTRYPOINT [ "tini", "-p", "SIGTERM", "--", "/usr/local/bin/entrypoint.sh" ]
 | 
			
		||||
HEALTHCHECK --start-period=1m --interval=2m --timeout=3s CMD [ "/usr/local/bin/entrypoint.sh", "healthcheck" ]
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										0
									
								
								rootfs/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								rootfs/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								rootfs/usr/local/bin/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								rootfs/usr/local/bin/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										308
									
								
								rootfs/usr/local/bin/entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										308
									
								
								rootfs/usr/local/bin/entrypoint.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,308 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# shellcheck shell=bash
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
##@Version           :  202211131221-git
 | 
			
		||||
# @@Author           :  Jason Hempstead
 | 
			
		||||
# @@Contact          :  jason@casjaysdev.com
 | 
			
		||||
# @@License          :  LICENSE.md
 | 
			
		||||
# @@ReadME           :  entrypoint.sh --help
 | 
			
		||||
# @@Copyright        :  Copyright: (c) 2022 Jason Hempstead, Casjays Developments
 | 
			
		||||
# @@Created          :  Sunday, Nov 13, 2022 12:21 EST
 | 
			
		||||
# @@File             :  entrypoint.sh
 | 
			
		||||
# @@Description      :  entrypoint point for wordpress
 | 
			
		||||
# @@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
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Set functions
 | 
			
		||||
__exec_command() {
 | 
			
		||||
  local exitCode=0
 | 
			
		||||
  local cmd="${*:-bash -l}"
 | 
			
		||||
  echo "${exec_message:-Executing command: $cmd}"
 | 
			
		||||
  $cmd || exitCode=1
 | 
			
		||||
  [ "$exitCode" = 0 ] || exitCode=10
 | 
			
		||||
  return ${exitCode:-$?}
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__curl() { curl -q -LSsf -o /dev/null "$@" &>/dev/null || return 10; }
 | 
			
		||||
__find() { find "$1" -mindepth 1 -type ${2:-f,d} 2>/dev/null | grep '^' || return 10; }
 | 
			
		||||
__pcheck() { [ -n "$(which pgrep 2>/dev/null)" ] && pgrep -x "$1" &>/dev/null || return 10; }
 | 
			
		||||
__pgrep() { __pcheck "${1:-$SERVICE_NAME}" || ps aux 2>/dev/null | grep -Fw " ${1:-$SERVICE_NAME}" | grep -qv ' grep' || return 10; }
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__certbot() {
 | 
			
		||||
  [ -n "$DOMAINNAME" ] && [ -n "$CERT_BOT_MAIL" ] || { echo "The variables DOMAINNAME and CERT_BOT_MAIL are set" && exit 1; }
 | 
			
		||||
  [ "$SSL_CERT_BOT" = "true" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; }
 | 
			
		||||
  certbot $1 --agree-tos -m $CERT_BOT_MAIL certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMAINNAME -d $DOMAINNAME \
 | 
			
		||||
    --put-all-related-files-into "$SSL_DIR" -key-path "$SSL_KEY" -fullchain-path "$SSL_CERT"
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__heath_check() {
 | 
			
		||||
  status=0 health="Good"
 | 
			
		||||
  start-wordpress.sh healthcheck || 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:-$?}
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__start_all_services() {
 | 
			
		||||
  echo "$service_message"
 | 
			
		||||
  start-wordpress.sh
 | 
			
		||||
  return $?
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Additional functions
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# export functions
 | 
			
		||||
export -f __exec_command __pcheck __pgrep __find __curl __heath_check __certbot __start_all_services
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Define default variables - do not change these - redefine with -e or set under Additional
 | 
			
		||||
DISPLAY="${DISPLAY:-}"
 | 
			
		||||
LANG="${LANG:-C.UTF-8}"
 | 
			
		||||
DOMAINNAME="${DOMAINNAME:-}"
 | 
			
		||||
TZ="${TZ:-America/New_York}"
 | 
			
		||||
SERVICE_PORT="${SERVICE_PORT:-$PORT}"
 | 
			
		||||
HOSTNAME="${HOSTNAME:-casjaysdev-wordpress}"
 | 
			
		||||
HOSTADMIN="${HOSTADMIN:-root@${DOMAINNAME:-$HOSTNAME}}"
 | 
			
		||||
CERT_BOT_MAIL="${CERT_BOT_MAIL:-certbot-mail@casjay.net}"
 | 
			
		||||
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_DATA_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 2>/dev/null | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/.*||g')"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Additional variables and variable overrides
 | 
			
		||||
SERVICE_NAME="wordpress"
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Show start message
 | 
			
		||||
export service_message="Starting $CONTAINER_NAME"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
[ "$SERVICE_PORT" = "443" ] && SSL_ENABLED="true"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Check if this is a new container
 | 
			
		||||
[ -f "/data/.docker_has_run" ] && DATA_DIR_INITIALIZED="true" || DATA_DIR_INITIALIZED="false"
 | 
			
		||||
[ -f "/config/.docker_has_run" ] && CONFIG_DIR_INITIALIZED="true" || CONFIG_DIR_INITIALIZED="false"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# export variables
 | 
			
		||||
export LANG TZ DOMAINNAME HOSTNAME HOSTADMIN SSL_ENABLED SSL_DIR SSL_CA SSL_KEY SERVICE_NAME
 | 
			
		||||
export SSL_DIR LOCAL_BIN_DIR DEFAULT_CONF_DIR CONTAINER_IP_ADDRESS SSL_CONTAINER_DIR
 | 
			
		||||
export SSL_CERT_BOT DISPLAY CONFIG_DIR_INITIALIZED DATA_DIR_INITIALIZED
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# 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 "$DOMAINNAME" ]; then
 | 
			
		||||
  echo "$HOSTNAME.${DOMAINNAME:-local}" >"/etc/hostname"
 | 
			
		||||
  echo "127.0.0.1 $HOSTNAME localhost $HOSTNAME.local" >"/etc/hosts"
 | 
			
		||||
  echo "${CONTAINER_IP_ADDRESS:-127.0.0.1} $HOSTNAME.$DOMAINNAME" >>"/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
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Create symlinks
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
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
 | 
			
		||||
SET_USR_BIN=""
 | 
			
		||||
[ -d "/data/bin" ] && SET_USR_BIN+="$(__find /data/bin f) "
 | 
			
		||||
[ -d "/config/bin" ] && SET_USR_BIN+="$(__find /config/bin f) "
 | 
			
		||||
if [ -n "$SET_USR_BIN" ]; then
 | 
			
		||||
  echo "Setting up bin"
 | 
			
		||||
  for create_bin in $SET_USR_BIN; do
 | 
			
		||||
    if [ -n "$create_bin" ]; then
 | 
			
		||||
      create_bin_name="$(basename "$create_bin")"
 | 
			
		||||
      ln -sf "$create_bin" "$LOCAL_BIN_DIR/$create_bin_name"
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Create default config
 | 
			
		||||
if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -d "/config" ]; then
 | 
			
		||||
  echo "Copying default config files"
 | 
			
		||||
  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 [ -n "$create_template" ]; then
 | 
			
		||||
        if [ -d "$create_template" ]; then
 | 
			
		||||
          mkdir -p "/config/$create_template_name/"
 | 
			
		||||
          cp -Rf "$create_template/." "/config/$create_template_name/" 2>/dev/null
 | 
			
		||||
        else
 | 
			
		||||
          cp -Rf "$create_template" "/config/$create_template_name" 2>/dev/null
 | 
			
		||||
        fi
 | 
			
		||||
      fi
 | 
			
		||||
    done
 | 
			
		||||
  fi
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Copy custom config files
 | 
			
		||||
if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -d "/config" ]; then
 | 
			
		||||
  echo "Copying custom config files"
 | 
			
		||||
  for create_config in "$DEFAULT_CONF_DIR"/*; do
 | 
			
		||||
    create_config_name="$(basename "$create_config")"
 | 
			
		||||
    if [ -n "$create_config" ]; then
 | 
			
		||||
      if [ -d "$create_config" ]; then
 | 
			
		||||
        mkdir -p "/config/$create_config_name"
 | 
			
		||||
        cp -Rf "$create_config/." "/config/$create_config_name/" 2>/dev/null
 | 
			
		||||
      else
 | 
			
		||||
        cp -Rf "$create_config" "/config/$create_config_name" 2>/dev/null
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Copy custom data files
 | 
			
		||||
if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -d "/data" ]; then
 | 
			
		||||
  echo "Copying data files"
 | 
			
		||||
  for create_data in "$DEFAULT_DATA_DIR"/*; do
 | 
			
		||||
    create_data_name="$(basename "$create_data")"
 | 
			
		||||
    if [ -n "$create_data" ]; then
 | 
			
		||||
      if [ -d "$create_data" ]; then
 | 
			
		||||
        mkdir -p "/data/$create_data_name"
 | 
			
		||||
        cp -Rf "$create_data/." "/data/$create_data_name/" 2>/dev/null
 | 
			
		||||
      else
 | 
			
		||||
        cp -Rf "$create_data" "/data/$create_data_name" 2>/dev/null
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Copy /config to /etc
 | 
			
		||||
if [ -d "/config" ]; then
 | 
			
		||||
  [ "$CONFIG_DIR_INITIALIZED" = "false" ] && echo "Copying /config to /etc"
 | 
			
		||||
  for create_conf in /config/*; do
 | 
			
		||||
    if [ -n "$create_conf" ]; then
 | 
			
		||||
      create_conf_name="$(basename "$create_conf")"
 | 
			
		||||
      if [ -e "/etc/$create_conf_name" ]; then
 | 
			
		||||
        if [ -d "/etc/$create_conf_name" ]; then
 | 
			
		||||
          mkdir -p "/etc/$create_conf_name/"
 | 
			
		||||
          cp -Rf "$create_conf/." "/etc/$create_conf_name/" 2>/dev/null
 | 
			
		||||
        else
 | 
			
		||||
          cp -Rf "$create_conf" "/etc/$create_conf_name" 2>/dev/null
 | 
			
		||||
        fi
 | 
			
		||||
      fi
 | 
			
		||||
    fi
 | 
			
		||||
  done
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Unset unneeded variables
 | 
			
		||||
unset SET_USR_BIN create_bin create_bin_name create_template create_template_name
 | 
			
		||||
unset create_data create_data_name create_config create_config_name create_conf create_conf_name
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
[ -f "/data/.docker_has_run" ] || { [ -d "/data" ] && echo "Initialized on: $(date)" >"/data/.docker_has_run"; }
 | 
			
		||||
[ -f "/config/.docker_has_run" ] || { [ -d "/config" ] && echo "Initialized on: $(date)" >"/config/.docker_has_run"; }
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Additional commands
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Show message
 | 
			
		||||
echo "Container ip address is: $CONTAINER_IP_ADDRESS"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
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 "${1:-$SERVICE_NAME}" || exitCode=10
 | 
			
		||||
  exit ${exitCode:-$?}
 | 
			
		||||
  ;;
 | 
			
		||||
 | 
			
		||||
*/bin/sh | */bin/bash | bash | shell | sh) # Launch shell
 | 
			
		||||
  shift 1
 | 
			
		||||
  __exec_command "${@:-/bin/bash}"
 | 
			
		||||
  exit ${exitCode:-$?}
 | 
			
		||||
  ;;
 | 
			
		||||
 | 
			
		||||
certbot)
 | 
			
		||||
  shift 1
 | 
			
		||||
  SSL_CERT_BOT="true"
 | 
			
		||||
  if [ "$1" = "create" ]; then
 | 
			
		||||
    shift 1
 | 
			
		||||
    __certbot
 | 
			
		||||
  elif [ "$1" = "renew" ]; then
 | 
			
		||||
    shift 1
 | 
			
		||||
    __certbot "renew certonly --force-renew"
 | 
			
		||||
  else
 | 
			
		||||
    __exec_command "certbot" "$@"
 | 
			
		||||
  fi
 | 
			
		||||
  ;;
 | 
			
		||||
 | 
			
		||||
*) # Execute primary command
 | 
			
		||||
  if [ $# -eq 0 ]; then
 | 
			
		||||
    __start_all_services
 | 
			
		||||
    exit ${exitCode:-$?}
 | 
			
		||||
  else
 | 
			
		||||
    __exec_command "$@"
 | 
			
		||||
    exitCode=$?
 | 
			
		||||
  fi
 | 
			
		||||
  ;;
 | 
			
		||||
esac
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# end of entrypoint
 | 
			
		||||
exit ${exitCode:-$?}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
 | 
			
		||||
# ex: ts=2 sw=2 et filetype=sh
 | 
			
		||||
							
								
								
									
										171
									
								
								rootfs/usr/local/bin/start-wordpress.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										171
									
								
								rootfs/usr/local/bin/start-wordpress.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,171 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# shellcheck shell=bash
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
##@Version           :  202211131221-git
 | 
			
		||||
# @@Author           :  Jason Hempstead
 | 
			
		||||
# @@Contact          :  jason@casjaysdev.com
 | 
			
		||||
# @@License          :  LICENSE.md
 | 
			
		||||
# @@ReadME           :  start-wordpress.sh --help
 | 
			
		||||
# @@Copyright        :  Copyright: (c) 2022 Jason Hempstead, Casjays Developments
 | 
			
		||||
# @@Created          :  Sunday, Nov 13, 2022 12:21 EST
 | 
			
		||||
# @@File             :  start-wordpress.sh
 | 
			
		||||
# @@Description      :  script to start wordpress
 | 
			
		||||
# @@Changelog        :  New script
 | 
			
		||||
# @@TODO             :  Better documentation
 | 
			
		||||
# @@Other            :  
 | 
			
		||||
# @@Resource         :  
 | 
			
		||||
# @@Terminal App     :  no
 | 
			
		||||
# @@sudo/root        :  no
 | 
			
		||||
# @@Template         :  other/start-service
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Set functions
 | 
			
		||||
__curl() { curl -q -LSsf -o /dev/null "$@" &>/dev/null || return 10; }
 | 
			
		||||
__find() { find "$1" -mindepth 1 -type ${2:-f,d} 2>/dev/null | grep '^' || return 10; }
 | 
			
		||||
__pcheck() { [ -n "$(which pgrep 2>/dev/null)" ] && pgrep -x "$1" &>/dev/null || return 10; }
 | 
			
		||||
__pgrep() { __pcheck "$1" || ps aux 2>/dev/null | grep -Fw " $1" | grep -qv ' grep' || return 10; }
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__certbot() {
 | 
			
		||||
  [ -n "$DOMAINNAME" ] && [ -n "$CERT_BOT_MAIL" ] || { echo "The variables DOMAINNAME and CERT_BOT_MAIL are set" && exit 1; }
 | 
			
		||||
  [ "$SSL_CERT_BOT" = "true" ] && type -P certbot &>/dev/null || { export SSL_CERT_BOT="" && return 10; }
 | 
			
		||||
  certbot $1 --agree-tos -m $CERT_BOT_MAIL certonly --webroot -w "${WWW_ROOT_DIR:-/data/htdocs/www}" -d $DOMAINNAME -d $DOMAINNAME \
 | 
			
		||||
    --put-all-related-files-into "$SSL_DIR" -key-path "$SSL_KEY" -fullchain-path "$SSL_CERT"
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__heath_check() {
 | 
			
		||||
  status=0 health="Good"
 | 
			
		||||
  __pgrep ${1:-} &>/dev/null || status=$((status + 1))
 | 
			
		||||
  #__curl "http://localhost:$SERVICE_PORT/server-health" || status=$((status + 1))
 | 
			
		||||
  [ "$status" -eq 0 ] || health="Errors reported see docker logs --follow $CONTAINER_NAME"
 | 
			
		||||
  return ${status:-$?}
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
__exec_command() {
 | 
			
		||||
  local exitCode=0
 | 
			
		||||
  local cmd="${*:-bash -l}"
 | 
			
		||||
  echo "Executing: $cmd"
 | 
			
		||||
  $cmd || exitCode=1
 | 
			
		||||
  [ "$exitCode" = 0 ] || exitCode=10
 | 
			
		||||
  return ${exitCode:-$?}
 | 
			
		||||
}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Set variables
 | 
			
		||||
DISPLAY="${DISPLAY:-}"
 | 
			
		||||
LANG="${LANG:-C.UTF-8}"
 | 
			
		||||
DOMAINNAME="${DOMAINNAME:-}"
 | 
			
		||||
TZ="${TZ:-America/New_York}"
 | 
			
		||||
SERVICE_PORT="${SERVICE_PORT:-$PORT}"
 | 
			
		||||
SERVICE_NAME="${CONTAINER_NAME:-}"
 | 
			
		||||
HOSTNAME="${HOSTNAME:-casjaysdev-wordpress}"
 | 
			
		||||
HOSTADMIN="${HOSTADMIN:-root@${DOMAINNAME:-$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}"
 | 
			
		||||
DATA_DIR_INITIALIZED="${DATA_DIR_INITIALIZED:-}"
 | 
			
		||||
CONFIG_DIR_INITIALIZED="${CONFIG_DIR_INITIALIZED:-}"
 | 
			
		||||
DEFAULT_DATA_DIR="${DEFAULT_DATA_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 2>/dev/null | grep 'inet' | grep -v '127.0.0.1' | awk '{print $2}' | sed 's|/.*||g')"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Overwrite variables
 | 
			
		||||
#SERVICE_PORT=""
 | 
			
		||||
SERVICE_NAME="wordpress"
 | 
			
		||||
SERVICE_COMMAND="$SERVICE_NAME"
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Show start message
 | 
			
		||||
start_message="Starting $SERVICE_NAME on $CONTAINER_IP_ADDRESS:$SERVICE_PORT"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
[ "$SERVICE_PORT" = "443" ] && SSL_ENABLED="true"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Pre copy commands
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Check if this is a new container
 | 
			
		||||
[ -z "$DATA_DIR_INITIALIZED" ] && [ -f "/data/.docker_has_run" ] && DATA_DIR_INITIALIZED="true"
 | 
			
		||||
[ -z "$CONFIG_DIR_INITIALIZED" ] && [ -f "/config/.docker_has_run" ] && CONFIG_DIR_INITIALIZED="true"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Create default config
 | 
			
		||||
if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_TEMPLATE_DIR" ]; then
 | 
			
		||||
  [ -d "/config" ] && cp -Rf "$DEFAULT_TEMPLATE_DIR/." "/config/" 2>/dev/null
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Copy custom config files
 | 
			
		||||
if [ "$CONFIG_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_CONF_DIR" ]; then
 | 
			
		||||
  [ -d "/config" ] && cp -Rf "$DEFAULT_CONF_DIR/." "/config/" 2>/dev/null
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Copy custom data files
 | 
			
		||||
if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -n "$DEFAULT_DATA_DIR" ]; then
 | 
			
		||||
  [ -d "/data" ] && cp -Rf "$DEFAULT_DATA_DIR/." "/data/" 2>/dev/null
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Copy html files
 | 
			
		||||
if [ "$DATA_DIR_INITIALIZED" = "false" ] && [ -d "$DEFAULT_DATA_DIR/data/htdocs" ]; then
 | 
			
		||||
  [ -d "/data" ] && cp -Rf "$DEFAULT_DATA_DIR/data/htdocs/." "$WWW_ROOT_DIR/" 2>/dev/null
 | 
			
		||||
fi
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Post copy commands
 | 
			
		||||
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Initialized
 | 
			
		||||
[ -d "/data" ] && touch "/data/.docker_has_run"
 | 
			
		||||
[ -d "/config" ] && touch "/config/.docker_has_run"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# 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 $?
 | 
			
		||||
  ;;
 | 
			
		||||
 | 
			
		||||
certbot)
 | 
			
		||||
  shift 1
 | 
			
		||||
  SSL_CERT_BOT="true"
 | 
			
		||||
  if [ "$1" = "create" ]; then
 | 
			
		||||
    shift 1
 | 
			
		||||
    __certbot
 | 
			
		||||
  elif [ "$1" = "renew" ]; then
 | 
			
		||||
    shift 1
 | 
			
		||||
    __certbot "renew certonly --force-renew"
 | 
			
		||||
  else
 | 
			
		||||
    __exec_command "certbot" "$@"
 | 
			
		||||
  fi
 | 
			
		||||
  ;;
 | 
			
		||||
 | 
			
		||||
*)
 | 
			
		||||
  if __pgrep "$SERVICE_NAME" && [ ! -f "/tmp/$SERVICE_NAME.pid" ]; then
 | 
			
		||||
    echo "$SERVICE_NAME is running"
 | 
			
		||||
  else
 | 
			
		||||
    touch "/tmp/$SERVICE_NAME.pid"
 | 
			
		||||
    echo "$start_message"
 | 
			
		||||
    __exec_command "$SERVICE_COMMAND" || rm -Rf "/tmp/$SERVICE_NAME.pid"
 | 
			
		||||
  fi
 | 
			
		||||
  ;;
 | 
			
		||||
esac
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# Set exit code
 | 
			
		||||
exitCode="${exitCode:-$?}"
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# End application
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# lets exit with code
 | 
			
		||||
exit ${exitCode:-$?}
 | 
			
		||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 | 
			
		||||
# end
 | 
			
		||||
# ex: ts=2 sw=2 et filetype=sh
 | 
			
		||||
							
								
								
									
										0
									
								
								rootfs/usr/local/share/template-files/data/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								rootfs/usr/local/share/template-files/data/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
		Reference in New Issue
	
	Block a user