Browse Source

feat(dockerfile): move away from debian -> alphine

Ahwx 1 year ago
parent
commit
92289e837b
1 changed files with 42 additions and 7 deletions
  1. 42 7
      Dockerfile

+ 42 - 7
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 <ahwx.org>" \
+      maintainer="Ahwx <ahwx.org>" \
+      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"]