# _teaching_ history = model.fit(train_dataset,epochs=epochs, callbacks= callbacks)
## Appendix A Appendix A.1 MPICH Base Image  
Listing 11 contains the contents of the Dockerfile used to build the base image extending the dependencies of the Alpine distribution with the MPICH implementation. The original file contains explanatory comments, which are omitted here. ```
Listing A1. The Dockerfile file for the Alpine MPICH base image. ``` ARGBASEDISTRO=\"alpine:3.17.3\"HOM${BASE_DISTRO}asbuild-baseLABELorg.opencontainers.image.authors=\"trak2025 [EMAIL_ADDRESS]\"ARGEXTRA_BASE_PACKAGES=\"\"RUNapkupdate&&apkadd-no-cachebuild-base${EXTRA_BASE_PACKAGES}HOMbuild-baseasinstallARGCOMPPLATION_PACKAGES=\"perl_linux-headers\"RUN[-n\"${COMPPLATION_PACKAGES}\"]&&apkadd-no-cache${COMPPLATION_PACKAGES}WORKDIR/tmp ARGMPICH_VERSION=\"4.1.1\"ARGMPICH_SOURCE_LINK=\"[[https://www.mpich.org/static/downloads/](https://www.mpich.org/static/downloads/)]([https://www.mpich.org/static/downloads/](https://www.mpich.org/static/downloads/))${MPICH_VERSION}/mpich-${MPICH_VERSION}.tar.gz\"RUNwget-Ompich.tarball\"${MPICH_SOURCE_LINK}\"RUNtarxfmpich.tarball&&mvmpich-*/mpichWORKDIR/tmp/mpichARGMAKE_PARALLEL_JOBS=12 ARGMPICH_CONFIG_ARGS=\"-disable-fortran_--disable-f08_--disable-collago-tests\"RUN./configure${MPICH_CONFIG_ARGS}ARGMPICH_MASK_ARS=\"-j_${MAKE_PARALLEL_JOBS}\"RUNmakeinstall${MPICH_MAKE_ARGS}DESTDIR=/tmp/install FROMbuild-baseCOPY--from=install/tmp/install/EXPOSE22/tcp ```
Listing A1. The Dockerfile file for the Alpine MPICH base image. A Dockerfile is a sequence of commands leading to the generation of a filesystem and container configuration, i.e., an image from which containers are ultimately launched. The script always begins with the FROM directive, possibly preceded by the definitions of arguments via ARG, which allow the build process to be influenced using the appropriate command, without the need to interfere with the Dockerfile itself. Through FROM, a base image is selected as the initial filesystem. The first encountered FROM in the script (line 2) is passed the value of the BASE_DISTRO argument, which by default takes the text alpine:3.17.3, meaning that the standard built image will be based on the existing image, namely the Linux Alpine distribution version 3.17.3. Specifying a particular version of the base image is a commonly recommended in practice. Usually, there is the option to refer to the latest version by specifying the latest label. However, preparing images in such a way carries the risk that containers created from seemingly identical images, but built at different intervals, will not behave the same, or might not even work correctly at all. Updates to base images can affect the dependencies used by containerized applications and indirectly contribute to their differing behavior. Containers should be characterized by reproducibility, regardless of the platform on which they are deployed. In the Dockerfile script, the commands to be executed from the container's system shell are specified by preceding them with the RUN command. The first encountered RUN command is the command to update the package manager apk's dependency lists and install a new dependency build-base (line 7), which includes basic compilation tools (including C and C++ compilers). An previously defined label (LABEL in line 4) provides contact information for the image's author. Later in the script, the directive FROM appears for the second time (line 9). This establishes another build stage. The earlier stage (covering lines 2-7) was named build-base (using the keyword as with FROM). The second stage, named install (concerning section 9-24), inherits from the temporary build-base image, whose file structure was developed up to the end of the first stage. At the end of the script (from line 26), the last, third stage appears, which is also based on the temporary image from the first stage build-base. Introducing multiple build stages allows for better organization of the script and reduces the final image size.