# Docker enhancements
* optimizes nginx.conf * better proxy pipelining * optimizes Dockerfile * smaller resulting image * faster rebuilding due to reusing of existing layers * optimizes docker-entrypoint.sh * better startup performance * better compatibility with docker engine
This commit is contained in:
37
Dockerfile
37
Dockerfile
@@ -1,27 +1,36 @@
|
||||
# Nutze ein schlankes Python-Image
|
||||
FROM python:3.11-slim-bullseye
|
||||
|
||||
ENV PYTHONUNBUFFERED 1
|
||||
|
||||
WORKDIR /konova
|
||||
|
||||
# Install some dependencies
|
||||
RUN apt update
|
||||
RUN apt install -y gdal-bin redis-server nginx
|
||||
# Installiere System-Abhängigkeiten
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
gdal-bin redis-server nginx \
|
||||
&& rm -rf /var/lib/apt/lists/* # Platz sparen
|
||||
|
||||
# Copy requirements file into workspace and install all dependencies
|
||||
# Erstelle benötigte Verzeichnisse & setze Berechtigungen
|
||||
RUN mkdir -p /var/log/nginx /var/log/gunicorn /var/lib/nginx /tmp/nginx_client_body \
|
||||
&& touch /var/log/nginx/access.log /var/log/nginx/error.log \
|
||||
&& chown -R root:root /var/log/nginx /var/lib/nginx /tmp/nginx_client_body
|
||||
|
||||
# Kopiere und installiere Python-Abhängigkeiten
|
||||
COPY ./requirements.txt /konova/
|
||||
RUN pip install --upgrade pip
|
||||
RUN pip install -r requirements.txt
|
||||
RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Remove nginx default configuration and replace with own configuration
|
||||
RUN rm /etc/nginx/sites-enabled/default
|
||||
# Entferne Standard-Nginx-Site und ersetze sie durch eigene Config
|
||||
RUN rm -rf /etc/nginx/sites-enabled/default
|
||||
COPY ./nginx.conf /etc/nginx/conf.d
|
||||
|
||||
# Create log folders
|
||||
RUN mkdir /var/log/gunicorn
|
||||
|
||||
# Copy rest of project into workspace
|
||||
# Kopiere restliche Projektdateien
|
||||
COPY . /konova/
|
||||
|
||||
# Move static files in designated folder
|
||||
RUN python manage.py collectstatic --noinput
|
||||
# Sammle statische Dateien
|
||||
RUN python manage.py collectstatic --noinput
|
||||
|
||||
# Exponiere Ports
|
||||
#EXPOSE 80 6379 8000
|
||||
|
||||
# Setze Entrypoint
|
||||
ENTRYPOINT ["/konova/docker-entrypoint.sh"]
|
||||
|
||||
Reference in New Issue
Block a user