diff --git a/Dockerfile b/Dockerfile index 5dd8982..1ec326e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -48,57 +48,73 @@ RUN npm run publish # Stage 3 # Build the CMS container + FROM ubuntu:24.04 -MAINTAINER OTS Signs + +LABEL maintainer="OTS Signs " LABEL org.opencontainers.image.authors="contact@ots-signs.com" -# Install apache, PHP, and supplimentary programs. -RUN apt update && \ - apt install -y software-properties-common lsb-release ca-certificates curl && \ - rm -rf /var/lib/apt/lists/* && \ - ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime +# Set noninteractive mode and timezone +ENV DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC LC_ALL=C.UTF-8 + +# Install base tools +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + software-properties-common \ + lsb-release \ + ca-certificates \ + curl \ + gnupg \ + && ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \ + && rm -rf /var/lib/apt/lists/* + +# Add Sury PHP Repository +RUN set -eux \ + && curl -fsSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /usr/share/keyrings/deb.sury.org-php.gpg \ + && echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" \ + > /etc/apt/sources.list.d/php.list + +# Install Apache, PHP 8.4, and required packages +RUN set -eux \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + tar \ + bash \ + curl \ + apache2 \ + libapache2-mod-xsendfile \ + netcat-traditional \ + iputils-ping \ + gnupg \ + php8.4 \ + libapache2-mod-php8.4 \ + php8.4-gd \ + php8.4-dom \ + php8.4-pdo \ + php8.4-zip \ + php8.4-mysql \ + php8.4-gettext \ + php8.4-soap \ + php8.4-curl \ + php8.4-xml \ + php8.4-mbstring \ + php8.4-opcache \ + php8.4-intl \ + php8.4-memcached \ + php8.4-mongodb \ + php8.4-gnupg \ + tzdata \ + msmtp \ + openssl \ + cron \ + default-mysql-client \ + && ln -fs /usr/share/zoneinfo/$TZ /etc/localtime \ + && dpkg-reconfigure --frontend noninteractive tzdata \ + && rm -rf /var/lib/apt/lists/* +`` -# Add sury.org PHP Repository -RUN curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg && \ - sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list' -RUN LC_ALL=C.UTF-8 DEBIAN_FRONTEND=noninteractive apt update && apt upgrade -y && apt install -y \ - tar \ - bash \ - curl \ - apache2 \ - libapache2-mod-xsendfile \ - netcat \ - iputils-ping \ - gnupg \ - php8.4 \ - libapache2-mod-php8.4 \ - php8.4-gd \ - php8.4-dom \ - php8.4-pdo \ - php8.4-zip \ - php8.4-mysql \ - php8.4-gettext \ - php8.4-soap \ - php8.4-iconv \ - php8.4-curl \ - php8.4-ctype \ - php8.4-fileinfo \ - php8.4-xml \ - php8.4-simplexml \ - php8.4-mbstring \ - php8.4-memcached \ - php8.4-phar \ - php8.4-opcache \ - php8.4-mongodb \ - php8.4-gnupg \ - tzdata \ - msmtp \ - openssl \ - cron \ - default-mysql-client \ - && dpkg-reconfigure --frontend noninteractive tzdata \ - && rm -rf /var/lib/apt/lists/* RUN update-alternatives --set php /usr/bin/php8.4