# 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"]