From 618c9cf73c84707d6d4432f8d87aea7fd07c81bf Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Wed, 12 Feb 2025 22:43:06 +0500 Subject: [PATCH] init --- Dockerfile | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++ compose.yml | 5 ++++ 2 files changed, 91 insertions(+) create mode 100644 Dockerfile create mode 100644 compose.yml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5f6fe92 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,86 @@ +FROM nginx + +# set work dir +WORKDIR /etc/nginx/ + +# Set build shell to bash, default has has some issues sometimes +SHELL ["/bin/bash", "-c"] + +# Update packges, remove nginx, default configs and install nginx-extras and other required packages +RUN apt-get update \ + && apt-get upgrade -y \ + && apt-get purge nginx -y \ + && rm -rvf /etc/default/nginx /etc/init.d/nginx /etc/init.d/nginx /etc/nginx/ \ + && apt-get install -y --no-install-recommends \ + nginx-extras \ + iputils-ping \ + ca-certificates \ + wget \ + curl \ + nano \ + vim \ + locales \ + && apt-get autoremove -y \ + && apt-get clean -y + +# Set environment variables and generate locale for locale +ENV LANG en_US.UTF-8 +ENV LANGUAGE en_US:en +ENV LC_ALL en_US.UTF-8 +RUN sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen \ + && locale-gen + +# Generate fake ssl to drop invalid connections and generate default configs +RUN mkdir -pv /etc/nginx/ssl/ \ + && echo -e "\n\n\n\n\n\n" | openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout /etc/nginx/ssl/drop.key -out /etc/nginx/ssl/drop.crt \ + && rm -v /etc/nginx/sites-enabled/default \ + && echo 'server { \ + listen 80 default_server; \ + listen [::]:80 default_server; \ + listen 443 ssl default_server; \ + listen [::]:443 ssl default_server; \ + \ + ssl_certificate /etc/nginx/ssl/drop.crt; \ + ssl_certificate_key /etc/nginx/ssl/drop.key; \ + \ + return 444; \ +}' > /etc/nginx/conf.d/drop.conf \ + && echo 'user www-data; \ +worker_processes auto; \ +pid /run/nginx.pid; \ +error_log /dev/sdtout; \ +include /etc/nginx/modules-enabled/*.conf; \ +\ +events { \ + worker_connections 768; \ +} \ + \ +http { \ + sendfile on; \ + tcp_nopush on; \ + types_hash_max_size 2048; \ +\ + include /etc/nginx/mime.types; \ + default_type application/octet-stream; \ +\ + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; \ + ssl_prefer_server_ciphers on; \ +\ + access_log /dev/stdout; \ +\ + include /etc/nginx/conf.d/*.conf; \ + include /etc/nginx/sites-enabled/*; \ +}' \ +> /etc/nginx/nginx.conf + + + +# Install ngxtop +RUN apt-get -y --no-install-recommends install python-is-python3 pipx \ + && pipx install ngxtop \ + && rm -rf ~/.cache/ \ + && apt-get auto-remove -y \ + && apt-get clean -y + +# clean up +RUN rm -rfv /var/lib/apt/lists /var/lib/dpkg/info diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..b71ddc8 --- /dev/null +++ b/compose.yml @@ -0,0 +1,5 @@ +services: + nginx: + build: . + hostname: nginx + image: git.shihaam.dev/dockerfiles/nginx-full