diff --git a/CHANGELOG.md b/CHANGELOG.md index b39fa9e..eb1847a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,11 @@ Supported versions: - OS: Ubuntu 22.04 LTS -- ns-3: from 3.40 +- ns-3: version 3.40 -- WOSS: 1.12.6 +- WOSS: version 1.12.6 -- MATLAB: 2022b +- MATLAB: 2022b (Update 8), 2023a (Update 6), 2023b (Update 6) through base images: [`egiona/ns3-base:u22.04-n3.40`][base1] and [`egiona/ns3-woss:u22.04-n3.40-w1.12.6`][woss1] diff --git a/CITATION.cff b/CITATION.cff index 3cfee9d..e0cf22d 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -24,4 +24,4 @@ keywords: - matlab-runtime - network-simulation license: MIT -doi: TODO +doi: 10.5281/zenodo.10671738 diff --git a/README.md b/README.md index 15d328b..7b939be 100644 --- a/README.md +++ b/README.md @@ -11,13 +11,20 @@ Please refer to [`ns3-base`][ns3-base] or [`ns3-woss`][ns3-woss] repositories fo Docker image name: [**`egiona/ns3-matlab`**][docker-hub-matlab]. -| Docker image tag | Base image
`egiona/ns3-base` | MATLAB Runtime | Dockerfile | +_Based on `egiona/ns3-base`_ +| Docker image tag | `egiona/ns3-base` | MATLAB Runtime | Dockerfile | | :---: | :---: | :---: | :---: | -| [`base-n3.40-m2022b`][image-base1] | [`u22.04-n3.40`][base1] | [2022b][matlab-changelog] | [link][file-base1] | +| [`base-n3.40-m2023b`][image-base3] | [`u22.04-n3.40`][base3] | [2023b][matlab-changelog] (Update 6) | [link][file-base3] | +| [`base-n3.40-m2023a`][image-base3] | [`u22.04-n3.40`][base2] | [2023a][matlab-changelog] (Update 6) | [link][file-base2] | +| [`base-n3.40-m2022b`][image-base1] | [`u22.04-n3.40`][base1] | [2022b][matlab-changelog] (Update 8) | [link][file-base1] | -| Docker image tag | Base image
`egiona/ns3-woss` | MATLAB Runtime | Dockerfile | +___ +_Based on `egiona/ns3-woss`_ +| Docker image tag | `egiona/ns3-woss` | MATLAB Runtime | Dockerfile | | :---: | :---: | :---: | :---: | -| [`woss-n3.40-m2022b`][image-woss1] | [`u22.04-n3.40-w1.12.6`][woss1] | [2022b][matlab-changelog] | [link][file-woss1] | +| [`woss-n3.40-m2023b`][image-woss3] | [`u22.04-n3.40-w1.12.6`][woss3] | [2023b][matlab-changelog] (Update 6) | [link][file-woss3] | +| [`woss-n3.40-m2023a`][image-woss2] | [`u22.04-n3.40-w1.12.6`][woss2] | [2023a][matlab-changelog] (Update 6) | [link][file-woss2] | +| [`woss-n3.40-m2022b`][image-woss1] | [`u22.04-n3.40-w1.12.6`][woss1] | [2022b][matlab-changelog] (Update 8) | [link][file-woss1] | Full changelog can be found at [this page](./CHANGELOG.md). @@ -76,7 +83,7 @@ However, _utility scripts_ are only provided for UNIX-like systems. Please ensure that the desired Docker image is bundled with a MATLAB Runtime version **greater or equal** than that of your MATLAB installation. - For instance: `ns3-matlab:base-n3.40-m2022b` supports executables created by MATLAB w/ Compiler versions _up to_ 2022b (included). + For instance: `ns3-matlab:base-n3.40-m2023b` supports executables created by MATLAB w/ Compiler versions _up to_ 2023b (included). Please refer to [MATLAB Compiler instructions][matlab-mcc-linux] for compiling your MATLAB source code into Linux-compatible executables. @@ -135,14 +142,14 @@ If you use any of the Docker images described in this repository, please cite th **APA** ``` -Giona, E. ns-3 and MATLAB Runtime Docker images [Computer software]. https://doi.org/TODO +Giona, E. ns-3 and MATLAB Runtime Docker images [Computer software]. https://doi.org/10.5281/zenodo.10671738 ``` **BibTeX** ``` @software{Giona_ns-3_and_MATLAB, author = {Giona, Emanuele}, -doi = {TODO}, +doi = {10.5281/zenodo.10671738}, license = {MIT}, title = {{ns-3 and MATLAB Runtime Docker images}}, url = {https://github.com/emanuelegiona/ns3-matlab-docker} @@ -185,13 +192,29 @@ All installed packages may also be subject to their own license, and the license [latest-makefile]: https://github.com/emanuelegiona/ns3-base-docker/u22.04-n3.40/ns3-utils/Makefile +[image-base3]: https://hub.docker.com/r/egiona/ns3-matlab/tags?page=1&name=base-n3.40-m2023b +[image-base2]: https://hub.docker.com/r/egiona/ns3-matlab/tags?page=1&name=base-n3.40-m2023a [image-base1]: https://hub.docker.com/r/egiona/ns3-matlab/tags?page=1&name=base-n3.40-m2022b + +[base3]: https://hub.docker.com/r/egiona/ns3-base/tags?page=1&name=u22.04-n3.40 +[base2]: https://hub.docker.com/r/egiona/ns3-base/tags?page=1&name=u22.04-n3.40 [base1]: https://hub.docker.com/r/egiona/ns3-base/tags?page=1&name=u22.04-n3.40 + +[file-base3]: ./base-n3.40-m2023b/Dockerfile +[file-base2]: ./base-n3.40-m2023a/Dockerfile [file-base1]: ./base-n3.40-m2022b/Dockerfile +[image-woss3]: https://hub.docker.com/r/egiona/ns3-matlab/tags?page=1&name=woss-n3.40-m2023b +[image-woss2]: https://hub.docker.com/r/egiona/ns3-matlab/tags?page=1&name=woss-n3.40-m2023a [image-woss1]: https://hub.docker.com/r/egiona/ns3-matlab/tags?page=1&name=woss-n3.40-m2022b + +[woss3]: https://hub.docker.com/r/egiona/ns3-woss/tags?page=1&name=u22.04-n3.40-w1.12.6 +[woss2]: https://hub.docker.com/r/egiona/ns3-woss/tags?page=1&name=u22.04-n3.40-w1.12.6 [woss1]: https://hub.docker.com/r/egiona/ns3-woss/tags?page=1&name=u22.04-n3.40-w1.12.6 + +[file-woss3]: ./woss-n3.40-m2023b/Dockerfile +[file-woss2]: ./woss-n3.40-m2023a/Dockerfile [file-woss1]: ./woss-n3.40-m2022b/Dockerfile [docker-install]: https://docs.docker.com/engine/install/ diff --git a/base-n3.40-m2022b/Dockerfile b/base-n3.40-m2022b/Dockerfile new file mode 100644 index 0000000..847c55b --- /dev/null +++ b/base-n3.40-m2022b/Dockerfile @@ -0,0 +1,72 @@ +# syntax=docker/dockerfile:1 + +# MIT License + +# Copyright (c) 2024 Emanuele Giona (SENSES Lab, +# Sapienza University of Rome) + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FROM egiona/ns3-base:u22.04-n3.40 + +LABEL maintainer="giona.emanuele@gmail.com" +LABEL version="0.1" +LABEL description="ns3-base:u22.04-n3.40 and MATLAB Runtime 2022b (9.13)" + +# Setting MCR_UPDATE to 0 yields the installation of the selected MATLAB Runtime version as originally released (no other updates) +ARG MCR_VER="2022b" +ARG MCR_UPDATE="8" + +# === MATLAB Runtime installer URL & filename === +# No updates +ARG MCR_FNAME_RELEASE="MATLAB_Runtime_R${MCR_VER}_glnxa64.zip" +# Updates +ARG MCR_FNAME_UPDATES="MATLAB_Runtime_R${MCR_VER}_Update_${MCR_UPDATE}_glnxa64.zip" + +ARG MCR_URL_BASE="https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VER}/Release/${MCR_UPDATE}/deployment_files/installer/complete/glnxa64" + +# Installation directory for MATLAB Runtime; also available as environment variable in containers +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime" +ARG MCR_LIBS="$MCR_DIR/R${MCR_VER}/runtime/glnxa64:$MCR_DIR/R${MCR_VER}/bin/glnxa64:$MCR_DIR/R${MCR_VER}/sys/os/glnxa64:$MCR_DIR/R${MCR_VER}/extern/bin/glnxa64" +# === ===== ===== === + +ARG TMP_DOWNLOAD_DIR="/home/downloads" +# ===== Basic OS updates ===== +ARG DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ +# ===== Downloading & installing: MATLAB Runtime ===== + cd /home && mkdir "$TMP_DOWNLOAD_DIR" && cd "$TMP_DOWNLOAD_DIR" && \ + # Use the base filename or the update-specific one (exactly 1 of the following conditionals is executed) + if [ "${MCR_UPDATE}" -eq "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_RELEASE}"; unzip "${MCR_FNAME_RELEASE}"; fi && \ + if [ "${MCR_UPDATE}" -ne "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_UPDATES}"; unzip "${MCR_FNAME_UPDATES}"; fi && \ + # Installing MATLAB Runtime (non-interactively & specifying directory) + echo "agreeToLicense=yes" >> install_options.txt && \ + echo "destinationFolder=$MCR_DIR" >> install_options.txt && \ + ./install -inputfile install_options.txt && \ + # Add to MATLAB Runtime libraries to LD_LIBRARY_PATH (exactly 1 of the following conditionals is executed) + echo "" >> ~/.bashrc && \ + echo "# MATLAB Runtime libraries for executables' dependencies" >> ~/.bashrc && \ + if [ -z "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS" >> ~/.bashrc; fi && \ + if [ -n "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS:$LD_LIBRARY_PATH" >> ~/.bashrc; fi && \ + # Cleanup: temporary downloads directory + cd /home && rm -rf "$TMP_DOWNLOAD_DIR" + +# Fix the directory for the specific version installed +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime/R${MCR_VER}" +CMD ["/bin/bash"] diff --git a/base-n3.40-m2023a/Dockerfile b/base-n3.40-m2023a/Dockerfile new file mode 100644 index 0000000..6274f27 --- /dev/null +++ b/base-n3.40-m2023a/Dockerfile @@ -0,0 +1,72 @@ +# syntax=docker/dockerfile:1 + +# MIT License + +# Copyright (c) 2024 Emanuele Giona (SENSES Lab, +# Sapienza University of Rome) + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FROM egiona/ns3-base:u22.04-n3.40 + +LABEL maintainer="giona.emanuele@gmail.com" +LABEL version="0.1" +LABEL description="ns3-base:u22.04-n3.40 and MATLAB Runtime 2023a (9.14)" + +# Setting MCR_UPDATE to 0 yields the installation of the selected MATLAB Runtime version as originally released (no other updates) +ARG MCR_VER="2023a" +ARG MCR_UPDATE="6" + +# === MATLAB Runtime installer URL & filename === +# No updates +ARG MCR_FNAME_RELEASE="MATLAB_Runtime_R${MCR_VER}_glnxa64.zip" +# Updates +ARG MCR_FNAME_UPDATES="MATLAB_Runtime_R${MCR_VER}_Update_${MCR_UPDATE}_glnxa64.zip" + +ARG MCR_URL_BASE="https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VER}/Release/${MCR_UPDATE}/deployment_files/installer/complete/glnxa64" + +# Installation directory for MATLAB Runtime; also available as environment variable in containers +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime" +ARG MCR_LIBS="$MCR_DIR/R${MCR_VER}/runtime/glnxa64:$MCR_DIR/R${MCR_VER}/bin/glnxa64:$MCR_DIR/R${MCR_VER}/sys/os/glnxa64:$MCR_DIR/R${MCR_VER}/extern/bin/glnxa64" +# === ===== ===== === + +ARG TMP_DOWNLOAD_DIR="/home/downloads" +# ===== Basic OS updates ===== +ARG DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ +# ===== Downloading & installing: MATLAB Runtime ===== + cd /home && mkdir "$TMP_DOWNLOAD_DIR" && cd "$TMP_DOWNLOAD_DIR" && \ + # Use the base filename or the update-specific one (exactly 1 of the following conditionals is executed) + if [ "${MCR_UPDATE}" -eq "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_RELEASE}"; unzip "${MCR_FNAME_RELEASE}"; fi && \ + if [ "${MCR_UPDATE}" -ne "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_UPDATES}"; unzip "${MCR_FNAME_UPDATES}"; fi && \ + # Installing MATLAB Runtime (non-interactively & specifying directory) + echo "agreeToLicense=yes" >> install_options.txt && \ + echo "destinationFolder=$MCR_DIR" >> install_options.txt && \ + ./install -inputfile install_options.txt && \ + # Add to MATLAB Runtime libraries to LD_LIBRARY_PATH (exactly 1 of the following conditionals is executed) + echo "" >> ~/.bashrc && \ + echo "# MATLAB Runtime libraries for executables' dependencies" >> ~/.bashrc && \ + if [ -z "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS" >> ~/.bashrc; fi && \ + if [ -n "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS:$LD_LIBRARY_PATH" >> ~/.bashrc; fi && \ + # Cleanup: temporary downloads directory + cd /home && rm -rf "$TMP_DOWNLOAD_DIR" + +# Fix the directory for the specific version installed +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime/R${MCR_VER}" +CMD ["/bin/bash"] diff --git a/base-n3.40-m2023b/Dockerfile b/base-n3.40-m2023b/Dockerfile new file mode 100644 index 0000000..a84f7e6 --- /dev/null +++ b/base-n3.40-m2023b/Dockerfile @@ -0,0 +1,72 @@ +# syntax=docker/dockerfile:1 + +# MIT License + +# Copyright (c) 2024 Emanuele Giona (SENSES Lab, +# Sapienza University of Rome) + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FROM egiona/ns3-base:u22.04-n3.40 + +LABEL maintainer="giona.emanuele@gmail.com" +LABEL version="0.1" +LABEL description="ns3-base:u22.04-n3.40 and MATLAB Runtime 2023b (23.2)" + +# Setting MCR_UPDATE to 0 yields the installation of the selected MATLAB Runtime version as originally released (no other updates) +ARG MCR_VER="2023b" +ARG MCR_UPDATE="6" + +# === MATLAB Runtime installer URL & filename === +# No updates +ARG MCR_FNAME_RELEASE="MATLAB_Runtime_R${MCR_VER}_glnxa64.zip" +# Updates +ARG MCR_FNAME_UPDATES="MATLAB_Runtime_R${MCR_VER}_Update_${MCR_UPDATE}_glnxa64.zip" + +ARG MCR_URL_BASE="https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VER}/Release/${MCR_UPDATE}/deployment_files/installer/complete/glnxa64" + +# Installation directory for MATLAB Runtime; also available as environment variable in containers +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime" +ARG MCR_LIBS="$MCR_DIR/R${MCR_VER}/runtime/glnxa64:$MCR_DIR/R${MCR_VER}/bin/glnxa64:$MCR_DIR/R${MCR_VER}/sys/os/glnxa64:$MCR_DIR/R${MCR_VER}/extern/bin/glnxa64" +# === ===== ===== === + +ARG TMP_DOWNLOAD_DIR="/home/downloads" +# ===== Basic OS updates ===== +ARG DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ +# ===== Downloading & installing: MATLAB Runtime ===== + cd /home && mkdir "$TMP_DOWNLOAD_DIR" && cd "$TMP_DOWNLOAD_DIR" && \ + # Use the base filename or the update-specific one (exactly 1 of the following conditionals is executed) + if [ "${MCR_UPDATE}" -eq "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_RELEASE}"; unzip "${MCR_FNAME_RELEASE}"; fi && \ + if [ "${MCR_UPDATE}" -ne "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_UPDATES}"; unzip "${MCR_FNAME_UPDATES}"; fi && \ + # Installing MATLAB Runtime (non-interactively & specifying directory) + echo "agreeToLicense=yes" >> install_options.txt && \ + echo "destinationFolder=$MCR_DIR" >> install_options.txt && \ + ./install -inputfile install_options.txt && \ + # Add to MATLAB Runtime libraries to LD_LIBRARY_PATH (exactly 1 of the following conditionals is executed) + echo "" >> ~/.bashrc && \ + echo "# MATLAB Runtime libraries for executables' dependencies" >> ~/.bashrc && \ + if [ -z "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS" >> ~/.bashrc; fi && \ + if [ -n "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS:$LD_LIBRARY_PATH" >> ~/.bashrc; fi && \ + # Cleanup: temporary downloads directory + cd /home && rm -rf "$TMP_DOWNLOAD_DIR" + +# Fix the directory for the specific version installed +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime/R${MCR_VER}" +CMD ["/bin/bash"] diff --git a/woss-n3.40-m2022b/Dockerfile b/woss-n3.40-m2022b/Dockerfile new file mode 100644 index 0000000..e8047bf --- /dev/null +++ b/woss-n3.40-m2022b/Dockerfile @@ -0,0 +1,72 @@ +# syntax=docker/dockerfile:1 + +# MIT License + +# Copyright (c) 2024 Emanuele Giona (SENSES Lab, +# Sapienza University of Rome) + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FROM egiona/ns3-woss:u22.04-n3.40-w1.12.6 + +LABEL maintainer="giona.emanuele@gmail.com" +LABEL version="0.1" +LABEL description="ns3-woss:u22.04-n3.40-w1.12.6 and MATLAB Runtime 2022b (9.13)" + +# Setting MCR_UPDATE to 0 yields the installation of the selected MATLAB Runtime version as originally released (no other updates) +ARG MCR_VER="2022b" +ARG MCR_UPDATE="8" + +# === MATLAB Runtime installer URL & filename === +# No updates +ARG MCR_FNAME_RELEASE="MATLAB_Runtime_R${MCR_VER}_glnxa64.zip" +# Updates +ARG MCR_FNAME_UPDATES="MATLAB_Runtime_R${MCR_VER}_Update_${MCR_UPDATE}_glnxa64.zip" + +ARG MCR_URL_BASE="https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VER}/Release/${MCR_UPDATE}/deployment_files/installer/complete/glnxa64" + +# Installation directory for MATLAB Runtime; also available as environment variable in containers +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime" +ARG MCR_LIBS="$MCR_DIR/R${MCR_VER}/runtime/glnxa64:$MCR_DIR/R${MCR_VER}/bin/glnxa64:$MCR_DIR/R${MCR_VER}/sys/os/glnxa64:$MCR_DIR/R${MCR_VER}/extern/bin/glnxa64" +# === ===== ===== === + +ARG TMP_DOWNLOAD_DIR="/home/downloads" +# ===== Basic OS updates ===== +ARG DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ +# ===== Downloading & installing: MATLAB Runtime ===== + cd /home && mkdir "$TMP_DOWNLOAD_DIR" && cd "$TMP_DOWNLOAD_DIR" && \ + # Use the base filename or the update-specific one (exactly 1 of the following conditionals is executed) + if [ "${MCR_UPDATE}" -eq "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_RELEASE}"; unzip "${MCR_FNAME_RELEASE}"; fi && \ + if [ "${MCR_UPDATE}" -ne "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_UPDATES}"; unzip "${MCR_FNAME_UPDATES}"; fi && \ + # Installing MATLAB Runtime (non-interactively & specifying directory) + echo "agreeToLicense=yes" >> install_options.txt && \ + echo "destinationFolder=$MCR_DIR" >> install_options.txt && \ + ./install -inputfile install_options.txt && \ + # Add to MATLAB Runtime libraries to LD_LIBRARY_PATH (exactly 1 of the following conditionals is executed) + echo "" >> ~/.bashrc && \ + echo "# MATLAB Runtime libraries for executables' dependencies" >> ~/.bashrc && \ + if [ -z "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS" >> ~/.bashrc; fi && \ + if [ -n "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS:$LD_LIBRARY_PATH" >> ~/.bashrc; fi && \ + # Cleanup: temporary downloads directory + cd /home && rm -rf "$TMP_DOWNLOAD_DIR" + +# Fix the directory for the specific version installed +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime/R${MCR_VER}" +CMD ["/bin/bash"] diff --git a/woss-n3.40-m2023a/Dockerfile b/woss-n3.40-m2023a/Dockerfile new file mode 100644 index 0000000..88681b8 --- /dev/null +++ b/woss-n3.40-m2023a/Dockerfile @@ -0,0 +1,72 @@ +# syntax=docker/dockerfile:1 + +# MIT License + +# Copyright (c) 2024 Emanuele Giona (SENSES Lab, +# Sapienza University of Rome) + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FROM egiona/ns3-woss:u22.04-n3.40-w1.12.6 + +LABEL maintainer="giona.emanuele@gmail.com" +LABEL version="0.1" +LABEL description="ns3-woss:u22.04-n3.40-w1.12.6 and MATLAB Runtime 2023a (9.14)" + +# Setting MCR_UPDATE to 0 yields the installation of the selected MATLAB Runtime version as originally released (no other updates) +ARG MCR_VER="2023a" +ARG MCR_UPDATE="6" + +# === MATLAB Runtime installer URL & filename === +# No updates +ARG MCR_FNAME_RELEASE="MATLAB_Runtime_R${MCR_VER}_glnxa64.zip" +# Updates +ARG MCR_FNAME_UPDATES="MATLAB_Runtime_R${MCR_VER}_Update_${MCR_UPDATE}_glnxa64.zip" + +ARG MCR_URL_BASE="https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VER}/Release/${MCR_UPDATE}/deployment_files/installer/complete/glnxa64" + +# Installation directory for MATLAB Runtime; also available as environment variable in containers +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime" +ARG MCR_LIBS="$MCR_DIR/R${MCR_VER}/runtime/glnxa64:$MCR_DIR/R${MCR_VER}/bin/glnxa64:$MCR_DIR/R${MCR_VER}/sys/os/glnxa64:$MCR_DIR/R${MCR_VER}/extern/bin/glnxa64" +# === ===== ===== === + +ARG TMP_DOWNLOAD_DIR="/home/downloads" +# ===== Basic OS updates ===== +ARG DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ +# ===== Downloading & installing: MATLAB Runtime ===== + cd /home && mkdir "$TMP_DOWNLOAD_DIR" && cd "$TMP_DOWNLOAD_DIR" && \ + # Use the base filename or the update-specific one (exactly 1 of the following conditionals is executed) + if [ "${MCR_UPDATE}" -eq "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_RELEASE}"; unzip "${MCR_FNAME_RELEASE}"; fi && \ + if [ "${MCR_UPDATE}" -ne "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_UPDATES}"; unzip "${MCR_FNAME_UPDATES}"; fi && \ + # Installing MATLAB Runtime (non-interactively & specifying directory) + echo "agreeToLicense=yes" >> install_options.txt && \ + echo "destinationFolder=$MCR_DIR" >> install_options.txt && \ + ./install -inputfile install_options.txt && \ + # Add to MATLAB Runtime libraries to LD_LIBRARY_PATH (exactly 1 of the following conditionals is executed) + echo "" >> ~/.bashrc && \ + echo "# MATLAB Runtime libraries for executables' dependencies" >> ~/.bashrc && \ + if [ -z "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS" >> ~/.bashrc; fi && \ + if [ -n "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS:$LD_LIBRARY_PATH" >> ~/.bashrc; fi && \ + # Cleanup: temporary downloads directory + cd /home && rm -rf "$TMP_DOWNLOAD_DIR" + +# Fix the directory for the specific version installed +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime/R${MCR_VER}" +CMD ["/bin/bash"] diff --git a/woss-n3.40-m2023b/Dockerfile b/woss-n3.40-m2023b/Dockerfile new file mode 100644 index 0000000..86922fd --- /dev/null +++ b/woss-n3.40-m2023b/Dockerfile @@ -0,0 +1,72 @@ +# syntax=docker/dockerfile:1 + +# MIT License + +# Copyright (c) 2024 Emanuele Giona (SENSES Lab, +# Sapienza University of Rome) + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +FROM egiona/ns3-woss:u22.04-n3.40-w1.12.6 + +LABEL maintainer="giona.emanuele@gmail.com" +LABEL version="0.1" +LABEL description="ns3-woss:u22.04-n3.40-w1.12.6 and MATLAB Runtime 2023b (23.2)" + +# Setting MCR_UPDATE to 0 yields the installation of the selected MATLAB Runtime version as originally released (no other updates) +ARG MCR_VER="2023b" +ARG MCR_UPDATE="6" + +# === MATLAB Runtime installer URL & filename === +# No updates +ARG MCR_FNAME_RELEASE="MATLAB_Runtime_R${MCR_VER}_glnxa64.zip" +# Updates +ARG MCR_FNAME_UPDATES="MATLAB_Runtime_R${MCR_VER}_Update_${MCR_UPDATE}_glnxa64.zip" + +ARG MCR_URL_BASE="https://ssd.mathworks.com/supportfiles/downloads/R${MCR_VER}/Release/${MCR_UPDATE}/deployment_files/installer/complete/glnxa64" + +# Installation directory for MATLAB Runtime; also available as environment variable in containers +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime" +ARG MCR_LIBS="$MCR_DIR/R${MCR_VER}/runtime/glnxa64:$MCR_DIR/R${MCR_VER}/bin/glnxa64:$MCR_DIR/R${MCR_VER}/sys/os/glnxa64:$MCR_DIR/R${MCR_VER}/extern/bin/glnxa64" +# === ===== ===== === + +ARG TMP_DOWNLOAD_DIR="/home/downloads" +# ===== Basic OS updates ===== +ARG DEBIAN_FRONTEND=noninteractive +RUN apt -y update && apt -y upgrade && \ +# ===== Downloading & installing: MATLAB Runtime ===== + cd /home && mkdir "$TMP_DOWNLOAD_DIR" && cd "$TMP_DOWNLOAD_DIR" && \ + # Use the base filename or the update-specific one (exactly 1 of the following conditionals is executed) + if [ "${MCR_UPDATE}" -eq "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_RELEASE}"; unzip "${MCR_FNAME_RELEASE}"; fi && \ + if [ "${MCR_UPDATE}" -ne "0" ]; then wget "${MCR_URL_BASE}/${MCR_FNAME_UPDATES}"; unzip "${MCR_FNAME_UPDATES}"; fi && \ + # Installing MATLAB Runtime (non-interactively & specifying directory) + echo "agreeToLicense=yes" >> install_options.txt && \ + echo "destinationFolder=$MCR_DIR" >> install_options.txt && \ + ./install -inputfile install_options.txt && \ + # Add to MATLAB Runtime libraries to LD_LIBRARY_PATH (exactly 1 of the following conditionals is executed) + echo "" >> ~/.bashrc && \ + echo "# MATLAB Runtime libraries for executables' dependencies" >> ~/.bashrc && \ + if [ -z "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS" >> ~/.bashrc; fi && \ + if [ -n "${LD_LIBRARY_PATH}" ]; then echo "export LD_LIBRARY_PATH=$MCR_LIBS:$LD_LIBRARY_PATH" >> ~/.bashrc; fi && \ + # Cleanup: temporary downloads directory + cd /home && rm -rf "$TMP_DOWNLOAD_DIR" + +# Fix the directory for the specific version installed +ENV MCR_DIR="/usr/local/MATLAB/MATLAB_Runtime/R${MCR_VER}" +CMD ["/bin/bash"]