From 92289e837bf5813f31b82b396f9ad82fbe6ae6c6 Mon Sep 17 00:00:00 2001 From: Ahwx Date: Sun, 3 Sep 2023 00:11:21 +0200 Subject: [PATCH] feat(dockerfile): move away from debian -> alphine --- Dockerfile | 49 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 649c874..3ee2bcc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,42 @@ -FROM debian:11 -LABEL maintainer="ahwx@ahwx.org" -RUN apt-get -y update && apt-get -y install php php-fpm php-curl nginx nginx-common git -RUN git clone https://github.com/Ahwxorg/binternet /var/www/html/binternet -COPY nginx.conf /etc/nginx/sites-enabled/binternet -EXPOSE 8009 -CMD service php$(php -v | grep PHP | head -n1 | cut -d " " -f2 | cut -d "." -f1-2)-fpm start && /usr/sbin/nginx -g "daemon off;" +FROM alpine:3.18 + +WORKDIR "/var/www/html" + +ADD "." "." + +# Docker metadata contains information about the maintainer, such as the name, repository, and support email +# See more: https://docs.docker.com/config/labels-custom-metadata/ +LABEL name="Binternet" \ + description="A custom Pinterest frontend, made in PHP." \ + version="1.0" \ + vendor="Ahwx " \ + maintainer="Ahwx " \ + url="https://github.com/Ahwxorg/LibreY" \ + authors="https://github.com/Ahwxorg/LibreY/contributors" + +# Include arguments as temporary environment variables to be handled by Docker during the image build process +# Change or add new arguments to customize the image generated by 'docker build' command +ARG DOCKER_SCRIPTS="docker" +ARG NGINX_PORT=8009 +# Set this argument during build time to indicate that the path is for php's www.conf +ARG WWW_CONFIG="/etc/php82/php-fpm.d/www.conf" + +# Customize the environment during both execution and build time by modifying the environment variables added to the container's shell +# When building your image, make sure to set the 'TZ' environment variable to your desired time zone location, for example 'America/Sao_Paulo' +# See more: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +ENV TZ="Europe/Amsterdam" + +# Install required packages +RUN apk add gettext php82 php82-fpm php82-dom php82-curl php82-json nginx --no-cache + +# Configure PHP-FPM to listen on a Unix socket instead of a TCP port, which is more secure and efficient +RUN touch /run/php-fpm82.sock && chown nginx:nginx "/run/php-fpm82.sock" +RUN sed -i 's/^\s*listen = 127.0.0.1:9000/listen = \/run\/php-fpm82.sock/' ${WWW_CONFIG} &&\ + sed -i 's/^\s*;\s*listen.owner = nobody/listen.owner = nginx/' ${WWW_CONFIG} &&\ + sed -i 's/^\s*;\s*listen.group = nobody/listen.group = nginx/' ${WWW_CONFIG} &&\ + sed -i 's/^\s*;\s*listen.mode = 0660/listen.mode = 0660/' ${WWW_CONFIG} + +EXPOSE ${NGINX_PORT} + +# Configures the container to be run as an executable. +ENTRYPOINT ["/bin/sh", "-c", "docker/entrypoint.sh"]