Dockerfile.ubuntu 1.5 KB
Newer Older
Nane Kratzke's avatar
Nane Kratzke committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
FROM ubuntu:18.04

LABEL maintainer="Nane Kratzke <nane.kratzke@th-luebeck.de>"

# Dies lädt die verfügbaren Ubuntu Packages und installiert
# NGINX in einem nicht interaktiven Modus.
RUN apt-get update
RUN apt-get install -y --no-install-recommends nginx

# Add to remove unnecessary package manager data
# RUN apt-get clean
# RUN rm -rf /var/lib/apt/lists/*

# Image Shrinking effect
# - activate to perform all steps ending in one image layer
# - deactivate all RUN commands above 
# RUN apt-get update && \
#    apt-get install -y --no-install-recommends nginx && \
#    apt-get clean && \
#    rm -rf /var/lib/apt/lists/*

# Das Webverzeichnis dieses Repos wird in das Container-Image
# kopiert, an der die Ubuntu Stanard NGINX-Installation
# statischen Webcontent ausliefert (Achtung, dieser Pafd ist
# sehr häufig Distributions-spezifisch).
ADD web /var/www/html/

# Der Port 80 (HTTP) wird nach außen exponiert
EXPOSE 80

# Wenn der Container gestartet wird, soll folgendes Kommando ausgeführt
# werden, das letztlich nur den Webserver NGINX wie konfiguriert startet.
ENTRYPOINT ["nginx", "-g", "daemon off;"]

# Achtung in Containern können Sie keine Daemon Prozesse mittels systemd
# (systemctl enable nginx) o. ähnl. starten, da diese in den Hintergrund
# geschickt werden. Der Entry-Prozess wird danach aber weiterlaufen und
# dann terminieren und somit den Container sofort beenden (was bei Servern
# meist nicht gewollt ist). Server-Prozesse müssen Sie in Containern also
# immer in einer "blockierenden" Art starten.