@startuml ' Basic style !$dockercontext = "#lightblue" !$baseimage = "#lightgray" !$finalimage = "#yellow" !$tempimage = "" left to right direction '''''''''''''''''''''''' ' debian.Dockerfile '''''''''''''''''''''''' object "Docker context" as docker_context $dockercontext object "python:3" as python3 $baseimage object "python:3-slim" as python3_slim $baseimage 'object "rust:slim" as rust_slim $baseimage object "debian builder" as nicobot_debian_builder <> $tempimage { Builds nicobot & dependencies } object "nicolabs/nicobot:debian" as nicobot_debian $finalimage { Installs nicobot & dependencies } python3 --> nicobot_debian_builder : FROM 'rust_slim --> nicobot_debian_builder : COPY docker_context ...> nicobot_debian_builder : COPY python3_slim --> nicobot_debian : FROM nicobot_debian_builder ..> nicobot_debian : COPY docker_context ...> nicobot_debian : COPY '''''''''''''''''''''''' ' signal-debian.Dockerfile '''''''''''''''''''''''' object "rust:1.49-buster" as rust $baseimage object "openjdk:11-jre-slim-stretch" as openjdk_slim $baseimage object "rust fix" as nicobot_rust_fix <> $tempimage { Downloads rust files to bypass a bug } object "signal-cli builder" as nicobot_signal_builder <> $tempimage { Builds signal-cli & libzkgroup } object "nicolabs/nicobot:signal-debian" as nicobot_debian_signal $finalimage { Installs signal-cli & dependencies } rust --> nicobot_rust_fix : FROM python3 --> nicobot_signal_builder : FROM docker_context ...> nicobot_signal_builder : COPY nicobot_rust_fix ..> nicobot_signal_builder : COPY nicobot_debian --> nicobot_debian_signal : FROM openjdk_slim ..> nicobot_debian_signal : COPY nicobot_signal_builder ..> nicobot_debian_signal : COPY '''''''''''''''''''''''' ' alpine.Dockerfile '''''''''''''''''''''''' object "python:3-alpine" as python3_alpine $baseimage object "alpine builder" as nicobot_alpine_builder <> $tempimage { Builds nicobot & dependencies } object "nicolabs/nicobot:alpine" as nicobot_alpine $finalimage { Installs nicobot & dependencies } python3_alpine --> nicobot_alpine_builder : FROM docker_context ...> nicobot_alpine_builder : COPY python3_alpine --> nicobot_alpine : FROM nicobot_alpine_builder ..> nicobot_alpine : COPY docker_context ...> nicobot_alpine : COPY @enduml