meta data for this page
  •  

Dockerfile

Ein Beispiel der grundlegenden Syntax eines Dockerfiles.

Dockerfile
# Basis Image, auf dem aufgebaut wird. Image wird beim Bauen automatisch aus der Registry heruntergeladen.
# Alternativ "FROM scratch". Dann wird mit einem leeren "/" gestartet und man muss sich um den Inhalt vollständig selbst kümmern.
FROM ubuntu
 
# Metadaten
LABEL maintainer="alias@domain.tld"
LABEL version="1.0"
 
# RUN Befehle werden ausschließlich beim Build des Images ausgeführt. NICHT beim Bau oder Starten des Containers!
RUN uname -a
RUN apt-get update && apt-get install -y iputils-ping
 
# Daten zum Image hinzufügen. 
# ADD hat zusätzliche Funktionen, wie das automatische Entpacken von Tarballs oder das Herunterladen von Dateien über URLs. 
# Kann aber auch als Ersatz für COPY dienen. Solang man keinen Tarball hinein kopieren will, ohne ihn zu entpacken. :P
# COPY kopiert ausschließlich lokal vorhandene Dateien in das Image
ADD app.tar.gz /app
COPY file2 /app/file2
 
# Beim Build: wechselt das aktuelle Arbeitsverzeichnis für nachfolgende RUNs
# Beim Container-Start: setzt das aktuelle Arbeitsverzeichnis bevor ENTRYPOINT/CMD ausgeführt wird.
WORKDIR /app
RUN touch file3
 
# Meldet dem Host, welcher Port vom Container geöffnet wird
EXPOSE 80
 
# Definiert was beim Starten des Containers standardmäßig ausgeführt werden soll.
# Ist ENTRYPOINT gesetzt, wird der CMD als Argument an den ENTRYPOINT angehangen.
# Der ENTRYPOINT ist optional. Wird er weggelassen, kann der CMD direkt einen Befehl beinhalten
ENTRYPOINT ["ping", "-c3"]
CMD ["localhost"]