diff --git a/.env.scripts.3.23 b/.env.scripts.3.23 new file mode 100644 index 0000000..31e9e4b --- /dev/null +++ b/.env.scripts.3.23 @@ -0,0 +1,82 @@ +# - - - - - - - - - - - - - - - - - - - - - - - - - +##@Version : 202511291150-git +# @@Author : CasjaysDev +# @@Contact : CasjaysDev +# @@License : MIT +# @@Copyright : Copyright 2025 CasjaysDev +# @@Created : Sat Nov 29 11:50:21 AM EST 2025 +# @@File : .env.scripts +# @@Description : Variables for gen-dockerfile and buildx scripts +# @@Changelog : newScript +# @@TODO : Refactor code +# @@Other : N/A +# @@Resource : N/A +# @@Terminal App : yes +# @@sudo/root : yes +# @@Template : templates/dockerfiles/dotenv.template +# - - - - - - - - - - - - - - - - - - - - - - - - - +# shellcheck disable=SC1001,SC1003,SC2001,SC2003,SC2016,SC2031,SC2090,SC2115,SC2120,SC2155,SC2199,SC2229,SC2317,SC2329 +# - - - - - - - - - - - - - - - - - - - - - - - - - +# entrypoint Settings +DOCKER_ENTYPOINT_PORTS_WEB="${DOCKER_ENTYPOINT_PORTS_WEB}" +DOCKER_ENTYPOINT_PORTS_SRV="${DOCKER_ENTYPOINT_PORTS_SRV}" +DOCKER_ENTYPOINT_HEALTH_APPS="$DOCKER_ENTYPOINT_HEALTH_APPS" +DOCKER_ENTYPOINT_HEALTH_ENDPOINTS="$DOCKER_ENTYPOINT_HEALTH_ENDPOINTS" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Dockerfile info +ENV_DOCKERFILE="Dockerfile" +ENV_IMAGE_NAME="alpine" +ENV_USE_TEMPLATE="alpine" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Maintainer info +ENV_ORG_NAME="casjaysdev" +ENV_VENDOR="CasjaysDev" +ENV_AUTHOR="CasjaysDev" +ENV_MAINTAINER="CasjaysDev " +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Repository URLs (Full URLs) +# ENV_GIT_REPO_URL: Complete Git repository URL for source code +ENV_GIT_REPO_URL="https://github.com/casjaysdevdocker/alpine" +# ENV_REGISTRY_URL: Complete registry URL for reference (NOT used for pushing) +ENV_REGISTRY_URL="https://hub.docker.com/casjaysdevdocker/alpine" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Push Configuration +# ENV_IMAGE_PUSH: Complete push destination (this IS used for pushing) +ENV_IMAGE_PUSH="casjaysdev/alpine" +# ENV_IMAGE_TAG: Default tag for the image +ENV_IMAGE_TAG="3.23" +# ENV_ADD_TAGS: Additional tags, comma-separated (USE_DATE = auto date tag) +ENV_ADD_TAGS="USE_DATE" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Additional push destinations (if needed) +ENV_ADD_IMAGE_PUSH="" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Pull Configuration +# ENV_PULL_URL: Source image to pull from (base image) +ENV_PULL_URL="alpine" +# ENV_DISTRO_TAG: Tag for the pull source image +ENV_DISTRO_TAG="${IMAGE_VERSION}" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Env +SERVICE_PORT="" +EXPOSE_PORTS="" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# IF using a lanuage such as go, php, rust, ruby, etc set the version here. +LANG_VERSION="" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Versions +PHP_VERSION="system" +NODE_VERSION="system" +NODE_MANAGER="system" +# - - - - - - - - - - - - - - - - - - - - - - - - - +# Default directories +WWW_ROOT_DIR="/usr/local/share/httpd/default" +DEFAULT_FILE_DIR="/usr/local/share/template-files" +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_PACKAGES="bash-completion git curl wget sudo unzip iproute2 ssmtp openssl jq tzdata mailcap ncurses util-linux pciutils usbutils coreutils binutils findutils grep rsync zip tini py3-pip procps net-tools coreutils sed gawk grep attr findutils readline lsof less curl shadow certbot ca-certificates " +# - - - - - - - - - - - - - - - - - - - - - - - - - +# ex: ts=2 sw=2 et filetype=sh +# - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Dockerfile.3.23 b/Dockerfile.3.23 new file mode 100644 index 0000000..c1bc525 --- /dev/null +++ b/Dockerfile.3.23 @@ -0,0 +1,114 @@ +# syntax=docker/dockerfile:1 +# Docker image for alpine using the alpine template +ARG IMAGE_NAME="alpine" +ARG PHP_SERVER="alpine" +ARG BUILD_DATE="202408111050" +ARG LANGUAGE="en_US.UTF-8" +ARG TIMEZONE="America/New_York" +ARG WWW_ROOT_DIR="/usr/local/share/httpd/default" +ARG DEFAULT_FILE_DIR="/usr/local/share/template-files" +ARG DEFAULT_DATA_DIR="/usr/local/share/template-files/data" +ARG DEFAULT_CONF_DIR="/usr/local/share/template-files/config" +ARG DEFAULT_TEMPLATE_DIR="/usr/local/share/template-files/defaults" + +ARG USER="root" +ARG SHELL_OPTS="set -e -o pipefail" + +ARG SERVICE_PORT="" +ARG EXPOSE_PORTS="" +ARG PHP_VERSION="system" +ARG NODE_VERSION="system" +ARG NODE_MANAGER="system" + +ARG IMAGE_REPO="casjaysdev/alpine" +ARG IMAGE_VERSION="3.23" +ARG CONTAINER_VERSION="" + +ARG PULL_URL="alpine" +ARG DISTRO_VERSION="${IMAGE_VERSION}" +ARG BUILD_VERSION="${BUILD_DATE}" + +FROM tianon/gosu:latest AS gosu +FROM ${PULL_URL}:${DISTRO_VERSION} AS build +ARG TZ +ARG USER +ARG LICENSE +ARG TIMEZONE +ARG LANGUAGE +ARG IMAGE_NAME +ARG BUILD_DATE +ARG SERVICE_PORT +ARG BUILD_VERSION +ARG SHELL_OPTS +ARG DISTRO_VERSION +ARG CONTAINER_VERSION + +ARG PACK_LIST="bash bash-completion git curl wget sudo unzip iproute2 tzdata ca-certificates ncurses util-linux pciutils usbutils net-tools coreutils " + +ENV ENV=~/.profile +ENV SHELL="/bin/sh" +ENV TZ="${TIMEZONE}" +ENV TIMEZONE="${TZ}" +ENV LANG="${LANGUAGE}" +ENV TERM="xterm-256color" +ENV PORT="${SERVICE_PORT}" +ENV CONTAINER_NAME="${IMAGE_NAME}" +ENV HOSTNAME="${CONTAINER_NAME}" +ENV USER="${USER}" + +USER ${USER} +WORKDIR /root + +COPY ./dockerfs/. / + +RUN set -e; \ + echo 'Installing packages' && \ + apk update && apk add --no-cache ${PACK_LIST} + +RUN set -e; \ + echo 'Running initial scripts' && \ + sh -c "INIT_DATE='${BUILD_DATE}' && export INIT_DATE && bash -c /root/docker/setup/00-init.sh" && \ + echo 'Initial setup completed' + +RUN set -e; \ + echo 'Running post install scripts' && \ + if [ -f "/root/docker/setup/02-packages.sh" ]; then bash -c "/root/docker/setup/02-packages.sh"; fi && \ + if [ -f "/root/docker/setup/03-files.sh" ]; then bash -c "/root/docker/setup/03-files.sh"; fi && \ + if [ -f "/root/docker/setup/04-users.sh" ]; then bash -c "/root/docker/setup/04-users.sh"; fi && \ + if [ -f "/root/docker/setup/05-custom.sh" ]; then bash -c "/root/docker/setup/05-custom.sh"; fi && \ + echo 'Post install completed' + +FROM scratch +ARG BUILD_DATE +ARG IMAGE_NAME +ARG TIMEZONE +ARG LANGUAGE + +ENV ENV=~/.profile +ENV SHELL="/bin/sh" +ENV TZ="${TIMEZONE}" +ENV TIMEZONE="${TZ}" +ENV LANG="${LANGUAGE}" +ENV TERM="xterm-256color" +ENV CONTAINER_NAME="${IMAGE_NAME}" +ENV HOSTNAME="${CONTAINER_NAME}" +ENV USER="root" + +USER root +WORKDIR /root + +LABEL org.opencontainers.image.vendor="CasjaysDev" +LABEL org.opencontainers.image.title="${IMAGE_NAME}" +LABEL org.opencontainers.image.base.name="${IMAGE_NAME}" +LABEL org.opencontainers.image.description="Containerized version of ${IMAGE_NAME}" +LABEL org.opencontainers.image.build-date="${BUILD_DATE}" +LABEL org.opencontainers.image.authors="CasjaysDev " + +COPY --from=gosu /usr/local/bin/gosu /usr/local/bin/gosu +COPY --from=build / / + +VOLUME [ "/root","/data","/config" ] + +ENTRYPOINT [ "tini","--","/usr/local/bin/entrypoint.sh" ] +HEALTHCHECK --interval=60s --timeout=30s --start-period=30s --retries=3 \ + CMD [ "/usr/local/bin/entrypoint.sh", "healthcheck" ]