├── .github
├── actions
│ ├── build-test-and-publish-matlab-deps
│ │ └── action.yml
│ └── build-test-and-publish-matlab
│ │ └── action.yml
└── workflows
│ ├── README.md
│ ├── build-and-publish-ubi-hardening-extras.yml
│ ├── build-test-and-publish-matlab-deps.yml
│ ├── build-test-and-publish-matlab.yml
│ ├── build-test-and-publish-network-licensing-manager.yml
│ ├── build-test-and-publish-single-matlab-deps.yml
│ ├── matlab-runtime-deps-r2023b-ubuntu22.04.yml
│ ├── matlab-runtime-deps-r2024a-ubuntu22.04.yml
│ ├── matlab-runtime-deps-r2024b-ubuntu24.04.yml
│ ├── polyspace-deps-r2022b-ubuntu20.04.yml
│ ├── polyspace-deps-r2023a-ubuntu20.04.yml
│ └── polyspace-deps-r2023b-ubuntu22.04.yml
├── .gitignore
├── LICENSE.md
├── README.md
├── SECURITY.md
├── matlab-deps
├── README.md
├── r2019b
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ └── ubuntu18.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2020a
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ └── ubuntu18.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2020b
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ └── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2021a
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ └── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2021b
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2022a
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2022b
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubi9
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2023a
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubi9
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2023b
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubi9
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2024a
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubi9
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2024b
│ ├── aws-batch
│ │ ├── Dockerfile
│ │ ├── base-dependencies.txt
│ │ └── stageDataAndRunJob.sh
│ ├── ubi8
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubi9
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ ├── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
│ └── ubuntu24.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
└── r2025a
│ ├── aws-batch
│ ├── Dockerfile
│ ├── base-dependencies.txt
│ └── stageDataAndRunJob.sh
│ ├── ubi8
│ ├── Dockerfile
│ └── base-dependencies.txt
│ ├── ubi9
│ ├── Dockerfile
│ └── base-dependencies.txt
│ ├── ubuntu22.04
│ ├── Dockerfile
│ └── base-dependencies.txt
│ └── ubuntu24.04
│ ├── Dockerfile
│ └── base-dependencies.txt
├── matlab-runtime-deps
├── README.md
├── r2023b
│ └── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2024a
│ └── ubuntu22.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
└── r2024b
│ └── ubuntu24.04
│ ├── Dockerfile
│ └── base-dependencies.txt
├── matlab
├── Dockerfile
├── README.md
├── README_DEEP_LEARNING.md
├── build
│ ├── config
│ │ ├── MATLAB.desktop
│ │ ├── localsudo
│ │ ├── matlab.prf
│ │ ├── matlab_deep_learning
│ │ │ └── MNISTExample.mlx
│ │ ├── novnc_login_redirect.html
│ │ ├── startup.m
│ │ ├── xfce4
│ │ │ ├── desktop
│ │ │ │ └── icons.screen0.rc
│ │ │ ├── panel
│ │ │ │ ├── launcher-10
│ │ │ │ │ └── panel-file-manager.desktop
│ │ │ │ ├── launcher-12
│ │ │ │ │ └── panel-app-finder.desktop
│ │ │ │ └── launcher-9
│ │ │ │ │ └── panel-terminal.desktop
│ │ │ └── xfconf
│ │ │ │ └── xfce-perchannel-xml
│ │ │ │ ├── wallpaper.jpg
│ │ │ │ ├── xfce4-desktop.xml
│ │ │ │ └── xfce4-panel.xml
│ │ ├── xscreensaver
│ │ └── xstartup
│ ├── readmes
│ │ ├── browser_readme
│ │ ├── help_readme
│ │ ├── vnc_readme
│ │ └── welcome_readme
│ ├── run.sh
│ └── utils.sh
├── docker-bake.hcl
└── release-config
│ ├── R2023a.env.hcl
│ ├── R2023b.env.hcl
│ ├── R2024a.env.hcl
│ ├── R2024b.env.hcl
│ └── R2025a.env.hcl
├── network-license-manager
├── Dockerfile
├── README.md
├── compose.yaml
├── docker-entrypoint.sh
├── licenses
│ ├── .gitignore
│ └── README.md
├── logs
│ └── .gitignore
└── tests
│ ├── .gitignore
│ ├── requirements.txt
│ ├── setup_gen_licfile.sh
│ ├── test_nlm_image.py
│ ├── test_nlm_licensing.py
│ └── utils.py
├── polyspace-deps
├── README.md
├── r2022b
│ └── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
├── r2023a
│ └── ubuntu20.04
│ │ ├── Dockerfile
│ │ └── base-dependencies.txt
└── r2023b
│ └── ubuntu22.04
│ ├── Dockerfile
│ └── base-dependencies.txt
├── tests
├── .gitignore
├── matlab-deps
│ ├── .gitignore
│ ├── __init__.py
│ ├── test_awsbatch.py
│ ├── test_ubi8.py
│ ├── test_ubi9.py
│ ├── test_ubuntu1804.py
│ ├── test_ubuntu2004.py
│ ├── test_ubuntu2204.py
│ ├── test_ubuntu2404.py
│ └── utils
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── release_platform.py
│ │ ├── test_ubi.py
│ │ └── test_ubuntu.py
├── matlab
│ ├── __init__.py
│ ├── common_setup.sh
│ ├── matlab
│ │ ├── AvailableProductsTest.m
│ │ ├── __init__.py
│ │ ├── run_AvailableProductsTest.py
│ │ └── test_ddux.py
│ ├── matlab_deep_learning
│ │ ├── DeepLearningAddonsTests.m
│ │ ├── __init__.py
│ │ ├── run_DeepLearningAddonsTests.py
│ │ └── test_ddux.py
│ ├── run-bats-test.sh
│ ├── shared
│ │ ├── Startup.m
│ │ ├── __init__.py
│ │ ├── run_startup.py
│ │ ├── test_ddux.py
│ │ ├── test_matlab_docker_batch.py
│ │ ├── test_matlab_docker_shell.py
│ │ ├── test_matlab_docker_vnc.py
│ │ ├── test_matlab_proxy_integration.py
│ │ └── test_msh_integration.py
│ ├── shtools
│ │ ├── create_file_with_content.sh
│ │ ├── create_mock.sh
│ │ ├── create_mock_df.sh
│ │ ├── create_mock_license.sh
│ │ ├── create_mock_matlab.sh
│ │ └── create_mock_vnc_novnc.sh
│ ├── tRun.bats
│ ├── tUtils.bats
│ ├── test_matlab-deep-learning.py
│ └── test_matlab.py
├── pytools
│ ├── __init__.py
│ ├── dockertool.py
│ ├── helper.py
│ └── test_suite_launcher.py
├── requirements.txt
└── tools
│ └── gen_license_file.sh
└── ubi-hardening-extras
├── README.md
├── almalinux-base
├── Dockerfile
└── base-dependencies.txt
├── icewm
└── Dockerfile
├── matlab
└── Dockerfile
├── novnc
└── Dockerfile
├── tests
├── .gitignore
├── icewm
│ └── icewm_test.py
├── matlab
│ └── matlab_test.py
├── novnc
│ └── novnc_test.py
├── requirements.txt
├── tigervnc
│ └── tigervnc_test.py
├── utils
│ ├── Dockerfile
│ ├── Dockerfile.matlab
│ ├── Dockerfile.novnc
│ └── basetest.py
└── xterm
│ └── xterm_test.py
├── tigervnc
└── Dockerfile
├── workflow
├── extract_metadata.sh
├── extraction.Dockerfile
└── increment_version.sh
└── xterm
└── Dockerfile
/.github/workflows/build-test-and-publish-network-licensing-manager.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | name: Build, Test and Publish the Network License Manager Container
4 |
5 | # Trigger this workflow either manually or when a new change is pushed to the
6 | # repo (except .md files)
7 | on:
8 | workflow_dispatch:
9 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
10 | push:
11 | branches:
12 | - 'main'
13 | paths:
14 | - 'network-license-manager/**'
15 | schedule:
16 | # Run at 00:00 on every Monday (1st Day of the Week)
17 | - cron: "0 0 * * 1"
18 |
19 | env:
20 | IMAGE_NAME: ghcr.io/${{ github.repository }}/network-license-manager
21 | LICENSE_FILE_PATH: ${{ github.workspace }}/licenses/license.dat
22 | HOSTNAME: docker-server
23 | MAC_ADDRESS: ${{ secrets.NLM_CONTAINER_TEST_MAC_ADDRESS }}
24 | PORT: 27012
25 | MATLAB_RELEASE: latest
26 |
27 |
28 | jobs:
29 | build-test-push-image:
30 | runs-on: ubuntu-latest
31 |
32 | steps:
33 | - name: Checkout repo
34 | uses: actions/checkout@v4
35 |
36 | - name: Login to GitHub Container Registry
37 | uses: docker/login-action@v3
38 | with:
39 | registry: ghcr.io
40 | username: ${{ github.repository_owner }}
41 | password: ${{ secrets.GITHUB_TOKEN }}
42 |
43 | - name: Set up Docker Buildx
44 | uses: docker/setup-buildx-action@v3
45 |
46 | - name: Build image locally
47 | uses: docker/build-push-action@v5
48 | with:
49 | context: ./network-license-manager
50 | platforms: linux/amd64
51 | load: true
52 | tags: |
53 | ${{ env.IMAGE_NAME }}:latest
54 |
55 | - name: Set up Python 3
56 | uses: actions/setup-python@v5
57 | with:
58 | python-version: "3.10"
59 |
60 | - name: Install test dependencies
61 | working-directory: ./network-license-manager/tests
62 | run: |
63 | python -m pip install --upgrade pip
64 | pip install -r requirements.txt
65 |
66 | - name: Generate license file
67 | env:
68 | MATLAB_LICENSE_FILE: ${{ secrets.MATLAB_LICENSE_FILE_R2025A }}
69 | working-directory: ./network-license-manager/tests
70 | run: ./setup_gen_licfile.sh
71 |
72 | - name: Test container
73 | env:
74 | IMAGE_NAME: ${{ env.IMAGE_NAME }}:latest
75 | working-directory: ./network-license-manager/tests
76 | run: python -m unittest
77 |
78 | - name: Push the image to ghcr.io
79 | run: docker push ${{ env.IMAGE_NAME }}:latest
80 |
--------------------------------------------------------------------------------
/.github/workflows/build-test-and-publish-single-matlab-deps.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | name: Build Test and Publish a Matlab-Deps Image
4 |
5 | # images build with this workflow are created with the following naming conventions:
6 | # ${image_name}:${matlab_release}-${os}
7 |
8 | # built images are pushed to DockerHub. Note: Both camel & Pascal case versions of tags are generated and published
9 |
10 | # This workflow is only be triggered when called from another workflow.
11 | on:
12 | workflow_dispatch:
13 | inputs:
14 | docker_build_context:
15 | description: "Relative path to folder with Dockerfile. Ex: ./matlab-deps/r2023a/ubuntu20.04"
16 | required: true
17 | type: string
18 | image_name:
19 | description: "Name of image, without tag. Example: mathworks/matlab-deps"
20 | required: true
21 | type: string
22 | matlab_release_tag:
23 | description: "Name of the MATLAB release. Example: r2023a"
24 | required: true
25 | type: string
26 | os_info_tag:
27 | description: "Allowed values: aws-batch, ubi8, ubi9, ubuntu20.04 ubuntu22.04"
28 | required: true
29 | type: string
30 | is_default_os:
31 | description: "Specify whether the OS being tagged is desired default OS. For example, This field is used to configure that matlab-deps/r2023a should point to matlab-deps/r2023a-ubuntu20.04"
32 | required: true
33 | type: boolean
34 | should_add_latest_tag:
35 | description: "Specify if this image should also be tagged as latest"
36 | required: true
37 | type: boolean
38 | test_file_path:
39 | description: "Relative path to the root directory. Ex: ./tests/matlab-deps/test_ubuntu2204.py"
40 | required: false
41 | type: string
42 |
43 | jobs:
44 | build-push-image:
45 | runs-on: ubuntu-latest
46 | steps:
47 | - name: Checkout repo
48 | uses: actions/checkout@v4
49 |
50 | - name: Login to Docker Hub
51 | uses: docker/login-action@v2
52 | with:
53 | username: ${{ secrets.DOCKERHUB_USERNAME }}
54 | password: ${{ secrets.DOCKERHUB_TOKEN }}
55 |
56 | - name: Build, Test, and Publish MATLAB-Deps
57 | uses: ./.github/actions/build-test-and-publish-matlab-deps
58 | with:
59 | docker_build_context: ${{ inputs.docker_build_context }}
60 | image_name: ${{ inputs.image_name }}
61 | matlab_release_tag: ${{ inputs.matlab_release_tag }}
62 | os_info_tag: ${{ inputs.os_info_tag }}
63 | is_default_os: ${{ inputs.is_default_os }}
64 | should_add_latest_tag: ${{ inputs.should_add_latest_tag }}
65 | test_file_path: ${{ inputs.test_file_path }}
66 |
--------------------------------------------------------------------------------
/.github/workflows/matlab-runtime-deps-r2023b-ubuntu22.04.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | # Build & Publish matlab-runtime-deps/r2023b/ubuntu22.04
3 | name: matlab-runtime-deps-r2023b-ubuntu22.04
4 |
5 | # Define when builds will occur:
6 | on:
7 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
8 | push:
9 | branches:
10 | - 'main'
11 | paths:
12 | - 'matlab-runtime-deps/r2023b/ubuntu22.04/**'
13 |
14 | # Run at 00:00 on every Monday (1st Day of the Week) (See: crontab.guru)
15 | schedule:
16 | - cron: '0 0 * * 1'
17 |
18 | workflow_dispatch:
19 |
20 | jobs:
21 | build-and-publish:
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repo
25 | uses: actions/checkout@v4
26 |
27 | - name: Login to Docker Hub
28 | uses: docker/login-action@v2
29 | with:
30 | username: ${{ secrets.DOCKERHUB_USERNAME }}
31 | password: ${{ secrets.DOCKERHUB_TOKEN }}
32 |
33 | - name: Build, and Publish MATLAB Runtime Dependencies
34 | uses: ./.github/actions/build-test-and-publish-matlab-deps
35 | with:
36 | docker_build_context: './matlab-runtime-deps/r2023b/ubuntu22.04'
37 | image_name: mathworks/matlab-runtime-deps
38 | matlab_release_tag: 'r2023b'
39 | os_info_tag: 'ubuntu22.04'
40 | is_default_os: true
41 | should_add_latest_tag: false
42 |
--------------------------------------------------------------------------------
/.github/workflows/matlab-runtime-deps-r2024a-ubuntu22.04.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | # Build & Publish matlab-runtime-deps/r2024a/ubuntu22.04
3 | name: matlab-runtime-deps-r2024a-ubuntu22.04
4 |
5 | # Define when builds will occur:
6 | on:
7 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
8 | push:
9 | branches:
10 | - 'main'
11 | paths:
12 | - 'matlab-runtime-deps/r2024a/ubuntu22.04/**'
13 |
14 | # Run at 00:00 on every Monday (1st Day of the Week) (See: crontab.guru)
15 | schedule:
16 | - cron: '0 0 * * 1'
17 |
18 | workflow_dispatch:
19 |
20 | jobs:
21 | build-and-publish:
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repo
25 | uses: actions/checkout@v4
26 |
27 | - name: Login to Docker Hub
28 | uses: docker/login-action@v2
29 | with:
30 | username: ${{ secrets.DOCKERHUB_USERNAME }}
31 | password: ${{ secrets.DOCKERHUB_TOKEN }}
32 |
33 | - name: Build, and Publish MATLAB Runtime Dependencies
34 | uses: ./.github/actions/build-test-and-publish-matlab-deps
35 | with:
36 | docker_build_context: './matlab-runtime-deps/r2024a/ubuntu22.04'
37 | image_name: mathworks/matlab-runtime-deps
38 | matlab_release_tag: 'r2024a'
39 | os_info_tag: 'ubuntu22.04'
40 | is_default_os: true
41 | should_add_latest_tag: false
42 |
--------------------------------------------------------------------------------
/.github/workflows/matlab-runtime-deps-r2024b-ubuntu24.04.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | # Build & Publish matlab-runtime-deps/r2024b/ubuntu24.04
3 | name: matlab-runtime-deps-r2024b-ubuntu24.04
4 |
5 | # Define when builds will occur:
6 | on:
7 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
8 | push:
9 | branches:
10 | - 'main'
11 | paths:
12 | - 'matlab-runtime-deps/r2024b/ubuntu24.04/**'
13 |
14 | # Run at 00:00 on every Monday (1st Day of the Week) (See: crontab.guru)
15 | schedule:
16 | - cron: '0 0 * * 1'
17 |
18 | workflow_dispatch:
19 |
20 | jobs:
21 | build-and-publish:
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repo
25 | uses: actions/checkout@v4
26 |
27 | - name: Login to Docker Hub
28 | uses: docker/login-action@v2
29 | with:
30 | username: ${{ secrets.DOCKERHUB_USERNAME }}
31 | password: ${{ secrets.DOCKERHUB_TOKEN }}
32 |
33 | - name: Build, and Publish MATLAB Runtime Dependencies
34 | uses: ./.github/actions/build-test-and-publish-matlab-deps
35 | with:
36 | docker_build_context: './matlab-runtime-deps/r2024b/ubuntu24.04'
37 | image_name: mathworks/matlab-runtime-deps
38 | matlab_release_tag: 'r2024b'
39 | os_info_tag: 'ubuntu24.04'
40 | is_default_os: true
41 | should_add_latest_tag: true
42 |
--------------------------------------------------------------------------------
/.github/workflows/polyspace-deps-r2022b-ubuntu20.04.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | # Build & Publish polyspace-deps/r2022b/ubuntu20.04
3 | name: polyspace-deps-r2022b-ubuntu20.04
4 |
5 | # Define when builds will occur:
6 | on:
7 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
8 | push:
9 | branches:
10 | - 'main'
11 | paths:
12 | - 'polyspace-deps/r2022b/ubuntu20.04/**'
13 |
14 | # Run at 00:00 on every Monday (1st Day of the Week) (See: crontab.guru)
15 | schedule:
16 | - cron: '0 0 * * 1'
17 |
18 | workflow_dispatch:
19 |
20 | jobs:
21 | build-and-publish:
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repo
25 | uses: actions/checkout@v4
26 |
27 | - name: Login to Docker Hub
28 | uses: docker/login-action@v2
29 | with:
30 | username: ${{ secrets.DOCKERHUB_USERNAME }}
31 | password: ${{ secrets.DOCKERHUB_TOKEN }}
32 |
33 | - name: Build, and Publish Polyspace Dependencies
34 | uses: ./.github/actions/build-test-and-publish-matlab-deps
35 | with:
36 | docker_build_context: './polyspace-deps/r2022b/ubuntu20.04'
37 | image_name: mathworks/polyspace-deps
38 | matlab_release_tag: 'r2022b'
39 | os_info_tag: 'ubuntu20.04'
40 | is_default_os: true
41 | should_add_latest_tag: false
42 |
--------------------------------------------------------------------------------
/.github/workflows/polyspace-deps-r2023a-ubuntu20.04.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | # Build & Publish polyspace-deps/r2023a/ubuntu20.04
3 | name: polyspace-deps-r2023a-ubuntu20.04
4 |
5 | # Define when builds will occur:
6 | on:
7 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
8 | push:
9 | branches:
10 | - 'main'
11 | paths:
12 | - 'polyspace-deps/r2023a/ubuntu20.04/**'
13 |
14 | # Run at 00:00 on every Monday (1st Day of the Week) (See: crontab.guru)
15 | schedule:
16 | - cron: '0 0 * * 1'
17 |
18 | workflow_dispatch:
19 |
20 | jobs:
21 | build-and-publish:
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repo
25 | uses: actions/checkout@v4
26 |
27 | - name: Login to Docker Hub
28 | uses: docker/login-action@v2
29 | with:
30 | username: ${{ secrets.DOCKERHUB_USERNAME }}
31 | password: ${{ secrets.DOCKERHUB_TOKEN }}
32 |
33 | - name: Build, and Publish Polyspace Dependencies
34 | uses: ./.github/actions/build-test-and-publish-matlab-deps
35 | with:
36 | docker_build_context: './polyspace-deps/r2023a/ubuntu20.04'
37 | image_name: mathworks/polyspace-deps
38 | matlab_release_tag: 'r2023a'
39 | os_info_tag: 'ubuntu20.04'
40 | is_default_os: true
41 | should_add_latest_tag: false
42 |
--------------------------------------------------------------------------------
/.github/workflows/polyspace-deps-r2023b-ubuntu22.04.yml:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | # Build & Publish polyspace-deps/r2023b/ubuntu22.04
3 | name: polyspace-deps-r2023b-ubuntu22.04
4 |
5 | # Define when builds will occur:
6 | on:
7 | # Run workflow when there is a push to the 'main' branch & push includes changes to any files in described path
8 | push:
9 | branches:
10 | - 'main'
11 | paths:
12 | - 'polyspace-deps/r2023b/ubuntu22.04/**'
13 |
14 | # Run at 00:00 on every Monday (1st Day of the Week) (See: crontab.guru)
15 | schedule:
16 | - cron: '0 0 * * 1'
17 |
18 | workflow_dispatch:
19 |
20 | jobs:
21 | build-and-publish:
22 | runs-on: ubuntu-latest
23 | steps:
24 | - name: Checkout repo
25 | uses: actions/checkout@v4
26 |
27 | - name: Login to Docker Hub
28 | uses: docker/login-action@v2
29 | with:
30 | username: ${{ secrets.DOCKERHUB_USERNAME }}
31 | password: ${{ secrets.DOCKERHUB_TOKEN }}
32 |
33 | - name: Build, and Publish Polyspace Dependencies
34 | uses: ./.github/actions/build-test-and-publish-matlab-deps
35 | with:
36 | docker_build_context: './polyspace-deps/r2023b/ubuntu22.04'
37 | image_name: mathworks/polyspace-deps
38 | matlab_release_tag: 'r2023b'
39 | os_info_tag: 'ubuntu22.04'
40 | is_default_os: true
41 | should_add_latest_tag: true
42 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__
2 | **/*.pyc
3 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MATHWORKS CLOUD REFERENCE ARCHITECTURE LICENSE
2 |
3 | The files in this GitHub repository refer to commercial software products and services, virtual machine images, and related materials of The MathWorks, Inc. (“MathWorks Programs”). MathWorks Programs are separately licensed under the MathWorks Software License Agreement, available in the desktop installation of the MathWorks Programs or in the virtual machine image. The files in this GitHub repository may also refer to third-party software licensed under separate terms provided by such third parties.
4 |
5 | The following license terms apply only to the files in this GitHub repository, including files in this folder and its subfolders, and do not apply to MathWorks Programs. References to “software” and “code” in the following license terms refer to the files in this GitHub repository.
6 |
7 | Copyright (c) 2021, The MathWorks, Inc.
8 |
9 | All rights reserved.
10 |
11 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
12 |
13 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
14 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
15 | 3. In all cases, the software is, and all modifications and derivatives of the software shall be, licensed to you solely for use in conjunction with MathWorks products and service offerings.
16 |
17 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Container Images
2 |
3 | This repository contains source files for the container images published by MathWorks on [Docker Hub](https://hub.docker.com/u/mathworks).
4 |
5 | ## Technical Support
6 | If you require assistance or have a request for additional features or capabilities, please contact [MathWorks Technical Support](https://www.mathworks.com/support/contact_us.html).
7 |
8 | ----
9 |
10 | Copyright 2019-2025 The MathWorks, Inc.
11 |
12 | ----
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | Reporting Security Vulnerabilities
2 | ==================================
3 | If you believe you have discovered a security vulnerability, please report it to
4 | security@mathworks.com instead of GitHub. Please see
5 | [MathWorks Vulnerability Disclosure Policy for Security Researchers](https://www.mathworks.com/company/aboutus/policies_statements/vulnerability-disclosure-policy.html)
6 | for additional information.
--------------------------------------------------------------------------------
/matlab-deps/r2019b/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2020-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu18.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install the AWS CLI to use for staging input and output data
23 | RUN pip3 install awscli
24 |
25 | # Create directories for the MATLAB install and for the JobStorageLocation
26 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
27 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
28 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
29 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
30 |
31 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
32 | # while running MATLAB.
33 | WORKDIR ${JOB_STORAGE_LOCATION}
34 |
35 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
36 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
37 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
38 |
--------------------------------------------------------------------------------
/matlab-deps/r2019b/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libatk1.0-0 libavcodec-extra57 libavformat57 libc6 libcairo-gobject2 libcairo2 libcups2 libdbus-1-3 libdbus-glib-1-2 libfontconfig1 libgconf-2-4 libgdk-pixbuf2.0-0 libgnomevfs2-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libidl-2-0 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.6 libpython3.7 libselinux1 libsm6 libsndfile1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxss1 libxt6 libxtst6 libxxf86vm1 locales locales-all procps python3 python3-pip sudo unzip wget xkb-data zip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2019b/ubuntu18.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2020-2024 The MathWorks, Inc.
2 |
3 | FROM ubuntu:18.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN export DEBIAN_FRONTEND=noninteractive \
10 | && apt-get update \
11 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
12 | && apt-get clean && apt-get -y autoremove \
13 | && rm -rf /var/lib/apt/lists/*
14 |
15 | # Uncomment the following RUN apt-get statement to install extended locale support for MATLAB
16 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y locales locales-all
17 |
18 | # Uncomment the following RUN ln -s statement if you will be running the MATLAB
19 | # license manager INSIDE the container.
20 | #RUN ln -s ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
21 |
22 | # Uncomment the following RUN apt-get statement if you will be using Simulink
23 | # code generation capabilities, or if you will be using mex with gcc, g++,
24 | # or gfortran.
25 | #
26 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y gcc g++ gfortran
27 |
28 | # Uncomment the following RUN apt-get statement to enable running a program
29 | # that makes use of MATLAB's Engine API for C and Fortran
30 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
31 | #
32 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y csh
33 |
34 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
35 | # (mp3, mp4, etc.) from within MATLAB.
36 | #
37 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y libgstreamer1.0-0 \
38 | # gstreamer1.0-tools \
39 | # gstreamer1.0-libav \
40 | # gstreamer1.0-plugins-base \
41 | # gstreamer1.0-plugins-good \
42 | # gstreamer1.0-plugins-bad \
43 | # gstreamer1.0-plugins-ugly \
44 | # gstreamer1.0-doc
45 |
46 | # Uncomment the following RUN apt-get statement if you will be using the 32-bit tcc compiler
47 | # used in the Polyspace product line.
48 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y libc6-i386
49 |
--------------------------------------------------------------------------------
/matlab-deps/r2019b/ubuntu18.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libatk1.0-0 libavcodec-extra57 libavformat57 libc6 libcairo-gobject2 libcairo2 libcups2 libdbus-1-3 libdbus-glib-1-2 libfontconfig1 libgconf-2-4 libgdk-pixbuf2.0-0 libgnomevfs2-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libidl-2-0 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.6 libpython3.7 libselinux1 libsm6 libsndfile1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxss1 libxt6 libxtst6 libxxf86vm1 procps sudo unzip wget xkb-data zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2020a/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2020-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu18.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install the AWS CLI to use for staging input and output data
23 | RUN pip3 install awscli
24 |
25 | # Create directories for the MATLAB install and for the JobStorageLocation
26 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
27 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
28 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
29 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
30 |
31 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
32 | # while running MATLAB.
33 | WORKDIR ${JOB_STORAGE_LOCATION}
34 |
35 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
36 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
37 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
38 |
--------------------------------------------------------------------------------
/matlab-deps/r2020a/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libatk1.0-0 libavcodec-extra57 libavformat57 libc6 libcairo-gobject2 libcairo2 libcups2 libdbus-1-3 libfontconfig1 libgdk-pixbuf2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.6 libpython3.7 libselinux1 libsm6 libsndfile1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 locales locales locales-all locales-all procps python3 python3-pip sudo unzip wget xkb-data zip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2020a/ubuntu18.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2020-2024 The MathWorks, Inc.
2 |
3 | FROM ubuntu:18.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN export DEBIAN_FRONTEND=noninteractive \
10 | && apt-get update \
11 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
12 | && apt-get clean && apt-get -y autoremove \
13 | && rm -rf /var/lib/apt/lists/*
14 |
15 | # Uncomment the following RUN apt-get statement to install extended locale support for MATLAB
16 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y locales locales-all
17 |
18 | # Uncomment the following RUN ln -s statement if you will be running the MATLAB
19 | # license manager INSIDE the container.
20 | #RUN ln -s ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
21 |
22 | # Uncomment the following RUN apt-get statement if you will be using Simulink
23 | # code generation capabilities, or if you will be using mex with gcc, g++,
24 | # or gfortran.
25 | #
26 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y gcc g++ gfortran
27 |
28 | # Uncomment the following RUN apt-get statement to enable running a program
29 | # that makes use of MATLAB's Engine API for C and Fortran
30 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
31 | #
32 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y csh
33 |
34 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
35 | # (mp3, mp4, etc.) from within MATLAB.
36 | #
37 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y libgstreamer1.0-0 \
38 | # gstreamer1.0-tools \
39 | # gstreamer1.0-libav \
40 | # gstreamer1.0-plugins-base \
41 | # gstreamer1.0-plugins-good \
42 | # gstreamer1.0-plugins-bad \
43 | # gstreamer1.0-plugins-ugly \
44 | # gstreamer1.0-doc
45 |
46 | # Uncomment the following RUN apt-get statement if you will be using the 32-bit tcc compiler
47 | # used in the Polyspace product line.
48 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y libc6-i386
49 |
--------------------------------------------------------------------------------
/matlab-deps/r2020a/ubuntu18.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libatk1.0-0 libavcodec-extra57 libavformat57 libc6 libcairo-gobject2 libcairo2 libcups2 libdbus-1-3 libfontconfig1 libgdk-pixbuf2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.6 libpython3.7 libselinux1 libsm6 libsndfile1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 locales locales-all procps sudo unzip wget xkb-data zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2020b/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2020-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install the AWS CLI to use for staging input and output data
23 | RUN pip3 install awscli
24 |
25 | # Create directories for the MATLAB install and for the JobStorageLocation
26 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
27 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
28 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
29 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
30 |
31 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
32 | # while running MATLAB.
33 | WORKDIR ${JOB_STORAGE_LOCATION}
34 |
35 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
36 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
37 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
38 |
--------------------------------------------------------------------------------
/matlab-deps/r2020b/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libatk1.0-0 libc6 libcairo-gobject2 libcairo2 libcrypt1 libcups2 libdbus-1-3 libfontconfig1 libgdk-pixbuf2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.8 libselinux1 libsm6 libsndfile1 libtcl8.6 libuuid1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 locales locales-all procps python3 python3-pip sudo wget xkb-data zip zlib1g unzip
--------------------------------------------------------------------------------
/matlab-deps/r2020b/ubuntu20.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2020-2024 The MathWorks, Inc.
2 |
3 | FROM ubuntu:20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN export DEBIAN_FRONTEND=noninteractive \
10 | && apt-get update \
11 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
12 | && apt-get clean && apt-get -y autoremove \
13 | && rm -rf /var/lib/apt/lists/*
14 |
15 | # Uncomment the following RUN apt-get statement if you will be using Simulink
16 | # code generation capabilities, or if you will be compiling your own mex files
17 | # with gcc, g++, or gfortran.
18 | #
19 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y gcc g++ gfortran
20 |
21 | # Uncomment the following RUN apt-get statement to enable running a program
22 | # that makes use of MATLAB's Engine API for C and Fortran
23 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
24 | #
25 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install -y csh
26 |
27 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
28 | # (mp3, mp4, etc.) from within MATLAB.
29 | #
30 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
31 | # gstreamer1.0-tools \
32 | # gstreamer1.0-libav \
33 | # gstreamer1.0-plugins-base \
34 | # gstreamer1.0-plugins-good \
35 | # gstreamer1.0-plugins-bad \
36 | # gstreamer1.0-plugins-ugly
37 |
38 | # Uncomment the following line if you require the fuse filesystem
39 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install --no-install-recommends -y libfuse2
40 |
41 | # Uncomment the following line if you require network tools
42 | # RUN apt-get install --no-install-recommends -y net-tools
43 |
44 | # Uncomment the following line if you require firefox
45 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get install --no-install-recommends -y firefox
46 |
47 | # Uncomment to resolve any license manager issues
48 | # RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
49 |
--------------------------------------------------------------------------------
/matlab-deps/r2020b/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libatk1.0-0 libc6 libcairo-gobject2 libcairo2 libcrypt1 libcups2 libdbus-1-3 libfontconfig1 libgdk-pixbuf2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.8 libselinux1 libsm6 libsndfile1 libtcl8.6 libuuid1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 locales locales-all procps sudo unzip wget xkb-data zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2021a/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install the AWS CLI to use for staging input and output data
23 | RUN pip3 install awscli
24 |
25 | # Create directories for the MATLAB install and for the JobStorageLocation
26 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
27 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
28 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
29 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
30 |
31 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
32 | # while running MATLAB.
33 | WORKDIR ${JOB_STORAGE_LOCATION}
34 |
35 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
36 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
37 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
38 |
--------------------------------------------------------------------------------
/matlab-deps/r2021a/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libatk1.0-0 libc6 libcairo-gobject2 libcairo2 libcrypt1 libcups2 libdbus-1-3 libfontconfig1 libgdk-pixbuf2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.8 libselinux1 libsm6 libsndfile1 libuuid1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 locales locales-all make net-tools procps python3 python3-pip sudo tzdata unzip wget zip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2021a/ubuntu20.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 |
3 | FROM ubuntu:20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN export DEBIAN_FRONTEND=noninteractive \
10 | && apt-get update \
11 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
12 | && apt-get clean && apt-get -y autoremove \
13 | && rm -rf /var/lib/apt/lists/*
14 |
15 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
16 |
17 | # Uncomment the following RUN apt-get statement if you will be using Simulink
18 | # code generation capabilities, or if you will be compiling your own mex files
19 | # with gcc, g++, or gfortran.
20 | #
21 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
22 |
23 | # Uncomment the following RUN apt-get statement to enable running a program
24 | # that makes use of MATLAB's Engine API for C and Fortran
25 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
26 | #
27 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
28 |
29 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
30 | # (mp3, mp4, etc.) from within MATLAB.
31 | #
32 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
33 | # gstreamer1.0-tools \
34 | # gstreamer1.0-libav \
35 | # gstreamer1.0-plugins-base \
36 | # gstreamer1.0-plugins-good \
37 | # gstreamer1.0-plugins-bad \
38 | # gstreamer1.0-plugins-ugly \
39 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
40 |
41 | # Uncomment the following line if you require the fuse filesystem
42 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
43 |
44 | # Uncomment the following line if you require firefox
45 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
46 |
47 | # Uncomment to resolve license manager issues
48 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
49 |
--------------------------------------------------------------------------------
/matlab-deps/r2021a/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libatk1.0-0 libc6 libcairo-gobject2 libcairo2 libcrypt1 libcups2 libdbus-1-3 libfontconfig1 libgdk-pixbuf2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython2.7 libpython3.8 libselinux1 libsm6 libsndfile1 libuuid1 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 locales locales-all make net-tools procps sudo tzdata unzip wget zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2021b/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install patched glibc - See https://github.com/mathworks/build-glibc-bz-19329-patch
23 | # Note: base-dependencies.txt includes libcrypt-dev and linux-libc-dev to enable installation of patched -dev packages
24 | WORKDIR /packages
25 | RUN export DEBIAN_FRONTEND=noninteractive &&\
26 | wget -q https://github.com/mathworks/build-glibc-bz-19329-patch/releases/download/ubuntu-focal/all-packages.tar.gz &&\
27 | tar -x -f all-packages.tar.gz \
28 | --exclude glibc-*.deb \
29 | --exclude libc6-dbg*.deb &&\
30 | apt-get install --yes --no-install-recommends ./*.deb &&\
31 | rm -fr /packages
32 | WORKDIR /
33 |
34 | # Install the AWS CLI to use for staging input and output data
35 | RUN pip3 install awscli
36 |
37 | # Create directories for the MATLAB install and for the JobStorageLocation
38 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
39 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
40 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
41 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
42 |
43 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
44 | # while running MATLAB.
45 | WORKDIR ${JOB_STORAGE_LOCATION}
46 |
47 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
48 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
49 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
50 |
--------------------------------------------------------------------------------
/matlab-deps/r2021b/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcrypt-dev libcups2 libdbus-1-3 libdrm2 libfontconfig1 libgbm1 libgdk-pixbuf2.0-0 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython3.9 libsm6 libsndfile1 libssl1.1 libuuid1 libx11-6 libx11-xcb1 libxcb-dri3-0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools procps python3 python3-pip sudo tzdata unzip wget zip zlib1g
2 |
--------------------------------------------------------------------------------
/matlab-deps/r2021b/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2021 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:8.5-226
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2021b/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64 at-spi2-atk.x86_64 at-spi2-core.x86_64 atk.x86_64 cairo.x86_64 cairo-gobject.x86_64 cups-libs.x86_64 dbus-libs.x86_64 fontconfig.x86_64 gdk-pixbuf2.x86_64 glib2.x86_64 glibc.x86_64 glibc-langpack-en.x86_64 glibc-locale-source.x86_64 gtk3.x86_64 libnsl2.x86_64 libSM.x86_64 libX11.x86_64 libX11-xcb.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXfixes.x86_64 libXft.x86_64 libXi.x86_64 libXinerama.x86_64 libXrandr.x86_64 libXrender.x86_64 libXt.x86_64 libXtst.x86_64 libXxf86vm.x86_64 libcap.x86_64 libdrm.x86_64 libgomp.x86_64 libsndfile.x86_64 libuuid.x86_64 libxcb.x86_64 libxcrypt.x86_64 make.x86_64 mesa-libgbm.x86_64 net-tools.x86_64 nspr.x86_64 nss.x86_64 nss-util.x86_64 openssl-libs.x86_64 pam.x86_64 pango.x86_64 procps-ng.x86_64 python39-libs.x86_64 sudo.x86_64 unixODBC.x86_64 unzip.x86_64 wget.x86_64 zlib.x86_64
2 |
--------------------------------------------------------------------------------
/matlab-deps/r2021b/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libatk-bridge2.0-0 libatk1.0-0 libatspi2.0-0 libc6 libcairo2 libcairo-gobject2 libcap2 libcrypt1 libcrypt-dev libcups2 libdbus-1-3 libdrm2 libfontconfig1 libgbm1 libgdk-pixbuf2.0-0 libglib2.0-0 libgomp1 libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 libgtk-3-0 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython3.9 libsm6 libsndfile1 libssl1.1 libuuid1 libx11-6 libx11-xcb1 libxcb-dri3-0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools procps sudo unzip wget zlib1g
2 |
3 |
--------------------------------------------------------------------------------
/matlab-deps/r2022a/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install patched glibc - See https://github.com/mathworks/build-glibc-bz-19329-patch
23 | # Note: base-dependencies.txt includes libcrypt-dev and linux-libc-dev to enable installation of patched -dev packages
24 | WORKDIR /packages
25 | RUN export DEBIAN_FRONTEND=noninteractive && \
26 | apt-get update && apt-get clean && apt-get autoremove && \
27 | wget -q https://github.com/mathworks/build-glibc-bz-19329-patch/releases/download/ubuntu-focal/all-packages.tar.gz && \
28 | tar -x -f all-packages.tar.gz \
29 | --exclude glibc-*.deb \
30 | --exclude libc6-dbg*.deb && \
31 | apt-get install --yes --no-install-recommends ./*.deb && \
32 | rm -fr /packages
33 | WORKDIR /
34 |
35 | # Install the AWS CLI to use for staging input and output data
36 | RUN pip3 install awscli
37 |
38 | # Create directories for the MATLAB install and for the JobStorageLocation
39 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
40 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
41 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
42 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
43 |
44 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
45 | # while running MATLAB.
46 | WORKDIR ${JOB_STORAGE_LOCATION}
47 |
48 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
49 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
50 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
51 |
--------------------------------------------------------------------------------
/matlab-deps/r2022a/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcrypt-dev libcups2 libdbus-1-3 libdrm2 libfontconfig1 libgbm1 libgdk-pixbuf2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython3.9 libsm6 libsndfile1 libuuid1 libx11-6 libx11-xcb1 libxcb-dri3-0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools procps python3 python3-pip sudo tzdata unzip wget zip zlib1g
2 |
--------------------------------------------------------------------------------
/matlab-deps/r2022a/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2022-2024 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:8.5-226
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2022a/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64 cairo.x86_64 cairo-gobject.x86_64 cups-libs.x86_64 dbus-libs.x86_64 fontconfig.x86_64 gdk-pixbuf2.x86_64 glib2.x86_64 glibc.x86_64 glibc-langpack-en.x86_64 glibc-locale-source.x86_64 gtk3.x86_64 libnsl2.x86_64 libSM.x86_64 libX11.x86_64 libX11-xcb.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXfixes.x86_64 libXft.x86_64 libXi.x86_64 libXinerama.x86_64 libXrandr.x86_64 libXrender.x86_64 libXt.x86_64 libXtst.x86_64 libXxf86vm.x86_64 libcap.x86_64 libdrm.x86_64 libglvnd-glx.x86_64 libgomp.x86_64 libsndfile.x86_64 libuuid.x86_64 libxcb.x86_64 libxcrypt.x86_64 make.x86_64 mesa-libgbm.x86_64 net-tools.x86_64 nspr.x86_64 nss.x86_64 nss-util.x86_64 pam.x86_64 pango.x86_64 procps-ng.x86_64 python39-libs.x86_64 sudo.x86_64 unixODBC.x86_64 unzip.x86_64 wget.x86_64 which.x86_64 zlib.x86_64
2 |
--------------------------------------------------------------------------------
/matlab-deps/r2022a/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcrypt-dev libcups2 libdbus-1-3 libdrm2 libfontconfig1 libgbm1 libgdk-pixbuf2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython3.9 libsm6 libsndfile1 libuuid1 libx11-6 libx11-xcb1 libxcb-dri3-0 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxft2 libxi6 libxinerama1 libxrandr2 libxrender1 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools procps sudo unzip wget zlib1g
2 |
--------------------------------------------------------------------------------
/matlab-deps/r2022b/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install patched glibc - See https://github.com/mathworks/build-glibc-bz-19329-patch
23 | # Note: base-dependencies.txt includes libcrypt-dev and linux-libc-dev to enable installation of patched -dev packages
24 | WORKDIR /packages
25 | RUN export DEBIAN_FRONTEND=noninteractive && \
26 | apt-get update && apt-get clean && apt-get autoremove && \
27 | wget -q https://github.com/mathworks/build-glibc-bz-19329-patch/releases/download/ubuntu-focal/all-packages.tar.gz && \
28 | tar -x -f all-packages.tar.gz \
29 | --exclude glibc-*.deb \
30 | --exclude libc6-dbg*.deb && \
31 | apt-get install --yes --no-install-recommends --allow-downgrades ./*.deb && \
32 | rm -fr /packages
33 | WORKDIR /
34 |
35 | # Install the AWS CLI to use for staging input and output data
36 | RUN pip3 install awscli
37 |
38 | # Create directories for the MATLAB install and for the JobStorageLocation
39 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
40 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
41 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
42 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
43 |
44 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
45 | # while running MATLAB.
46 | WORKDIR ${JOB_STORAGE_LOCATION}
47 |
48 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
49 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
50 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
51 |
--------------------------------------------------------------------------------
/matlab-deps/r2022b/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcrypt-dev libcups2 libdrm2 libgbm1 libgdk-pixbuf2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libsndfile1 libsystemd0 libuuid1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools procps python3 python3-pip sudo tzdata unzip wget zip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2022 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64 cairo.x86_64 cairo-gobject.x86_64 cups-libs.x86_64 gdk-pixbuf2.x86_64 glib2.x86_64 glibc.x86_64 glibc-langpack-en.x86_64 glibc-locale-source.x86_64 gtk3.x86_64 libICE.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXfixes.x86_64 libXft.x86_64 libXinerama.x86_64 libXrandr.x86_64 libXt.x86_64 libXtst.x86_64 libXxf86vm.x86_64 libcap.x86_64 libdrm.x86_64 libglvnd-glx.x86_64 libgomp.x86_64 libsndfile.x86_64 libuuid.x86_64 libxcrypt.x86_64 make.x86_64 mesa-libgbm.x86_64 net-tools.x86_64 nspr.x86_64 nss.x86_64 nss-util.x86_64 pam.x86_64 pango.x86_64 procps-ng.x86_64 sudo.x86_64 systemd-libs.x86_64 unixODBC.x86_64 unzip.x86_64 which.x86_64 zlib.x86_64
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubi9/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
14 |
15 | # Uncomment the following RUN yum statement to enable code generation capabilities,
16 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
17 | #
18 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
19 |
20 | # Uncomment the following line if you require the fuse filesystem
21 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
22 |
23 | # Uncomment to resolve certain license manager issues
24 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
25 |
26 |
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubi9/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64 cairo-gobject.x86_64 cairo.x86_64 cups-libs.x86_64 gdk-pixbuf2.x86_64 glib2.x86_64 glibc-langpack-en.x86_64 glibc-locale-source.x86_64 glibc.x86_64 gstreamer1-plugins-base.x86_64 gstreamer1.x86_64 gtk3.x86_64 libcap.x86_64 libdrm.x86_64 libglvnd-glx.x86_64 libgomp.x86_64 libICE.x86_64 libsndfile.x86_64 libuuid.x86_64 libXcomposite.x86_64 libxcrypt-compat.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXfixes.x86_64 libXft.x86_64 libXinerama.x86_64 libXrandr.x86_64 libXt.x86_64 libXtst.x86_64 libXxf86vm.x86_64 make.x86_64 mesa-libgbm.x86_64 net-tools.x86_64 nspr.x86_64 nss-util.x86_64 nss.x86_64 pam.x86_64 pango.x86_64 procps-ng.x86_64 sudo.x86_64 unixODBC.x86_64 unzip.x86_64 which.x86_64 zlib.x86_64
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcrypt-dev libcups2 libdrm2 libgbm1 libgdk-pixbuf2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libsndfile1 libsystemd0 libuuid1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools procps sudo unzip wget zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean && apt-get -y autoremove \
12 | && rm -rf /var/lib/apt/lists/*
13 |
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN apt-get statement if you will be using Simulink
17 | # code generation capabilities, or if you will be compiling your own mex files
18 | # with gcc, g++, or gfortran.
19 | #
20 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
21 |
22 | # Uncomment the following RUN apt-get statement to enable running a program
23 | # that makes use of MATLAB's Engine API for C and Fortran
24 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
25 | #
26 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
27 |
28 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
29 | # (mp3, mp4, etc.) from within MATLAB.
30 | #
31 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
32 | # gstreamer1.0-tools \
33 | # gstreamer1.0-libav \
34 | # gstreamer1.0-plugins-base \
35 | # gstreamer1.0-plugins-good \
36 | # gstreamer1.0-plugins-bad \
37 | # gstreamer1.0-plugins-ugly \
38 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
39 |
40 | # Uncomment the following line if you require the fuse filesystem
41 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
42 |
43 | # Uncomment the following line if you require firefox
44 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
45 |
46 | # Uncomment to resolve any license manager issues
47 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
48 |
--------------------------------------------------------------------------------
/matlab-deps/r2022b/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcups2 libdrm2 libgbm1 libgdk-pixbuf-2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc2 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython3.10 libsndfile1 libuhd4.1.0 libuuid1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 locales locales-all make net-tools procps sudo unzip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2023a/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu20.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | # Install patched glibc - See https://github.com/mathworks/build-glibc-bz-19329-patch
23 | # Note: base-dependencies.txt includes libcrypt-dev and linux-libc-dev to enable installation of patched -dev packages
24 | WORKDIR /packages
25 | RUN export DEBIAN_FRONTEND=noninteractive && \
26 | apt-get update && apt-get clean && apt-get autoremove && \
27 | wget -q https://github.com/mathworks/build-glibc-bz-19329-patch/releases/download/ubuntu-focal/all-packages.tar.gz && \
28 | tar -x -f all-packages.tar.gz \
29 | --exclude glibc-*.deb \
30 | --exclude libc6-dbg*.deb && \
31 | apt-get install --yes --no-install-recommends --allow-downgrades ./*.deb && \
32 | rm -fr /packages
33 | WORKDIR /
34 |
35 | # Install the AWS CLI to use for staging input and output data
36 | RUN pip3 install awscli
37 |
38 | # Create directories for the MATLAB install and for the JobStorageLocation
39 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
40 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
41 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
42 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
43 |
44 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
45 | # while running MATLAB.
46 | WORKDIR ${JOB_STORAGE_LOCATION}
47 |
48 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
49 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
50 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
51 |
--------------------------------------------------------------------------------
/matlab-deps/r2023a/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates csh g++ gcc gfortran libasound2 libc6 libcairo2 libcairo-gobject2 libcap2 libcrypt1 libcrypt-dev libcups2 libdrm2 libdw1 libgbm1 libgdk-pixbuf2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libsndfile1 libsystemd0 libuuid1 libwayland-client0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools odbcinst1debian2 procps python3 python3-pip sudo unzip wget zip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64 cairo.x86_64 cairo-gobject.x86_64 cups-libs.x86_64 elfutils-libs.x86_64 gdk-pixbuf2.x86_64 glib2.x86_64 glibc.x86_64 glibc-langpack-en.x86_64 glibc-locale-source.x86_64 gtk3.x86_64 libcap.x86_64 libdrm.x86_64 libglvnd-glx.x86_64 libgomp.x86_64 libICE.x86_64 libsndfile.x86_64 libuuid.x86_64 libwayland-client.x86_64 libXcomposite.x86_64 libxcrypt.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXfixes.x86_64 libXft.x86_64 libXinerama.x86_64 libXrandr.x86_64 libXt.x86_64 libXtst.x86_64 libXxf86vm.x86_64 make.x86_64 mesa-libgbm.x86_64 net-tools.x86_64 nspr.x86_64 nss.x86_64 nss-util.x86_64 pam.x86_64 pango.x86_64 procps-ng.x86_64 sudo.x86_64 systemd-libs.x86_64 unixODBC.x86_64 unzip.x86_64 which.x86_64 zlib.x86_64
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubi9/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
14 |
15 | # Uncomment the following RUN yum statement to enable code generation capabilities,
16 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
17 | #
18 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
19 |
20 | # Uncomment the following line if you require the fuse filesystem
21 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
22 |
23 | # Uncomment to resolve certain license manager issues
24 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
25 |
26 |
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubi9/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64 cairo-gobject.x86_64 cairo.x86_64 cups-libs.x86_64 gdk-pixbuf2.x86_64 glib2.x86_64 glibc-langpack-en.x86_64 glibc-locale-source.x86_64 glibc.x86_64 gstreamer1-plugins-base.x86_64 gstreamer1.x86_64 gtk3.x86_64 libcap.x86_64 libdrm.x86_64 libglvnd-glx.x86_64 libICE.x86_64 libsndfile.x86_64 libuuid.x86_64 libwayland-client.x86_64 libXcomposite.x86_64 libxcrypt-compat.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXfixes.x86_64 libXft.x86_64 libXinerama.x86_64 libXrandr.x86_64 libXt.x86_64 libXtst.x86_64 libXxf86vm.x86_64 make.x86_64 mesa-libgbm.x86_64 net-tools.x86_64 nspr.x86_64 nss-util.x86_64 nss.x86_64 pam.x86_64 pango.x86_64 procps-ng.x86_64 sudo.x86_64 unixODBC.x86_64 unzip.x86_64 which.x86_64 zlib.x86_64
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libc6 libcairo2 libcairo-gobject2 libcap2 libcrypt1 libcrypt-dev libcups2 libdrm2 libdw1 libgbm1 libgdk-pixbuf2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer1.0-0 libgstreamer-plugins-base1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc1 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libsndfile1 libsystemd0 libuuid1 libwayland-client0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 linux-libc-dev locales locales-all make net-tools odbcinst1debian2 procps sudo unzip wget zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean && apt-get -y autoremove \
12 | && rm -rf /var/lib/apt/lists/*
13 |
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN apt-get statement if you will be using Simulink
17 | # code generation capabilities, or if you will be compiling your own mex files
18 | # with gcc, g++, or gfortran.
19 | #
20 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
21 |
22 | # Uncomment the following RUN apt-get statement to enable running a program
23 | # that makes use of MATLAB's Engine API for C and Fortran
24 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
25 | #
26 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
27 |
28 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
29 | # (mp3, mp4, etc.) from within MATLAB.
30 | #
31 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
32 | # gstreamer1.0-tools \
33 | # gstreamer1.0-libav \
34 | # gstreamer1.0-plugins-base \
35 | # gstreamer1.0-plugins-good \
36 | # gstreamer1.0-plugins-bad \
37 | # gstreamer1.0-plugins-ugly \
38 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
39 |
40 | # Uncomment the following line if you require the fuse filesystem
41 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
42 |
43 | # Uncomment the following line if you require firefox
44 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
45 |
46 | # Uncomment to resolve any license manager issues
47 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
48 |
--------------------------------------------------------------------------------
/matlab-deps/r2023a/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcups2 libdrm2 libgbm1 libgdk-pixbuf-2.0-0 libgl1 libglib2.0-0 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc2 libodbcinst2 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpython3.10 libsndfile1 libuuid1 libwayland-client0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 locales locales-all make net-tools procps sudo unzip zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2023b/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:11.8.0-base-ubuntu22.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | WORKDIR /
23 |
24 | # Install the AWS CLI to use for staging input and output data
25 | RUN pip3 install awscli
26 |
27 | # Create directories for the MATLAB install and for the JobStorageLocation
28 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
29 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
30 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
31 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
32 |
33 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
34 | # while running MATLAB.
35 | WORKDIR ${JOB_STORAGE_LOCATION}
36 |
37 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
38 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
39 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
40 |
--------------------------------------------------------------------------------
/matlab-deps/r2023b/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | csh
3 | g++
4 | gcc
5 | gfortran
6 | libasound2
7 | libc6
8 | libcairo-gobject2
9 | libcairo2
10 | libcap2
11 | libcups2
12 | libdrm2
13 | libgbm1
14 | libgdk-pixbuf-2.0-0
15 | libgl1
16 | libglib2.0-0
17 | libgstreamer-plugins-base1.0-0
18 | libgstreamer1.0-0
19 | libgtk-3-0
20 | libice6
21 | libltdl7
22 | libnspr4
23 | libnss3
24 | libpam0g
25 | libpango-1.0-0
26 | libpangocairo-1.0-0
27 | libpangoft2-1.0-0
28 | libsndfile1
29 | libuuid1
30 | libwayland-client0
31 | libxcomposite1
32 | libxcursor1
33 | libxdamage1
34 | libxfixes3
35 | libxft2
36 | libxinerama1
37 | libxrandr2
38 | libxt6
39 | libxtst6
40 | libxxf86vm1
41 | locales
42 | locales-all
43 | make
44 | net-tools
45 | procps
46 | python3
47 | python3-pip
48 | sudo
49 | unzip
50 | zip
51 | zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | gdk-pixbuf2.x86_64
6 | glib2.x86_64
7 | glibc.x86_64
8 | glibc-langpack-en.x86_64
9 | glibc-locale-source.x86_64
10 | gtk3.x86_64
11 | libICE.x86_64
12 | libXcomposite.x86_64
13 | libXcursor.x86_64
14 | libXdamage.x86_64
15 | libXfixes.x86_64
16 | libXft.x86_64
17 | libXinerama.x86_64
18 | libXrandr.x86_64
19 | libXt.x86_64
20 | libXtst.x86_64
21 | libXxf86vm.x86_64
22 | libcap.x86_64
23 | libdrm.x86_64
24 | libglvnd-glx.x86_64
25 | libsndfile.x86_64
26 | libtool-ltdl.x86_64
27 | libuuid.x86_64
28 | libwayland-client.x86_64
29 | make.x86_64
30 | mesa-libgbm.x86_64
31 | net-tools.x86_64
32 | nspr.x86_64
33 | nss.x86_64
34 | nss-util.x86_64
35 | pam.x86_64
36 | pango.x86_64
37 | procps-ng.x86_64
38 | sudo.x86_64
39 | unzip.x86_64
40 | which.x86_64
41 | zlib.x86_64
42 |
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubi9/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
14 |
15 | # Uncomment the following RUN yum statement to enable code generation capabilities,
16 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
17 | #
18 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
19 |
20 | # Uncomment the following line if you require the fuse filesystem
21 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
22 |
23 | # Uncomment to resolve certain license manager issues
24 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
25 |
26 |
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubi9/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | gdk-pixbuf2.x86_64
6 | glib2.x86_64
7 | glibc.x86_64
8 | glibc-langpack-en.x86_64
9 | glibc-locale-source.x86_64
10 | gstreamer1.x86_64
11 | gstreamer1-plugins-base.x86_64
12 | gtk3.x86_64
13 | libICE.x86_64
14 | libXcomposite.x86_64
15 | libXcursor.x86_64
16 | libXdamage.x86_64
17 | libXfixes.x86_64
18 | libXft.x86_64
19 | libXinerama.x86_64
20 | libXrandr.x86_64
21 | libXt.x86_64
22 | libXtst.x86_64
23 | libXxf86vm.x86_64
24 | libcap.x86_64
25 | libdrm.x86_64
26 | libglvnd-glx.x86_64
27 | libsndfile.x86_64
28 | libtool-ltdl.x86_64
29 | libuuid.x86_64
30 | libwayland-client.x86_64
31 | make.x86_64
32 | mesa-libgbm.x86_64
33 | net-tools.x86_64
34 | nspr.x86_64
35 | nss.x86_64
36 | nss-util.x86_64
37 | pam.x86_64
38 | pango.x86_64
39 | procps-ng.x86_64
40 | sudo.x86_64
41 | unzip.x86_64
42 | which.x86_64
43 | zlib.x86_64
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libc6
4 | libcairo-gobject2
5 | libcairo2
6 | libcap2
7 | libcrypt-dev
8 | libcups2
9 | libdrm2
10 | libgbm1
11 | libgdk-pixbuf2.0-0
12 | libgl1
13 | libglib2.0-0
14 | libgstreamer-plugins-base1.0-0
15 | libgstreamer1.0-0
16 | libgtk-3-0
17 | libice6
18 | libltdl7
19 | libnspr4
20 | libnss3
21 | libpam0g
22 | libpango-1.0-0
23 | libpangocairo-1.0-0
24 | libpangoft2-1.0-0
25 | libsndfile1
26 | libuuid1
27 | libwayland-client0
28 | libxcomposite1
29 | libxcursor1
30 | libxdamage1
31 | libxfixes3
32 | libxft2
33 | libxinerama1
34 | libxrandr2
35 | libxt6
36 | libxtst6
37 | libxxf86vm1
38 | linux-libc-dev
39 | locales
40 | locales-all
41 | make
42 | net-tools
43 | procps
44 | sudo
45 | unzip
46 | wget
47 | zlib1g
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean && apt-get -y autoremove \
12 | && rm -rf /var/lib/apt/lists/*
13 |
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | WORKDIR /
17 |
18 | # Uncomment the following RUN apt-get statement if you will be using Simulink
19 | # code generation capabilities, or if you will be compiling your own mex files
20 | # with gcc, g++, or gfortran.
21 | #
22 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
23 |
24 | # Uncomment the following RUN apt-get statement to enable running a program
25 | # that makes use of MATLAB's Engine API for C and Fortran
26 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
27 | #
28 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
29 |
30 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
31 | # (mp3, mp4, etc.) from within MATLAB.
32 | #
33 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
34 | # gstreamer1.0-tools \
35 | # gstreamer1.0-libav \
36 | # gstreamer1.0-plugins-base \
37 | # gstreamer1.0-plugins-good \
38 | # gstreamer1.0-plugins-bad \
39 | # gstreamer1.0-plugins-ugly \
40 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
41 |
42 | # Uncomment the following line if you require the fuse filesystem
43 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
44 |
45 | # Uncomment the following line if you require firefox
46 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
47 |
48 | # Uncomment to resolve any license manager issues
49 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
50 |
--------------------------------------------------------------------------------
/matlab-deps/r2023b/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libc6
4 | libcairo-gobject2
5 | libcairo2
6 | libcap2
7 | libcups2
8 | libdrm2
9 | libgbm1
10 | libgdk-pixbuf-2.0-0
11 | libgl1
12 | libglib2.0-0
13 | libgstreamer-plugins-base1.0-0
14 | libgstreamer1.0-0
15 | libgtk-3-0
16 | libice6
17 | libltdl7
18 | libnspr4
19 | libnss3
20 | libpam0g
21 | libpango-1.0-0
22 | libpangocairo-1.0-0
23 | libpangoft2-1.0-0
24 | libsndfile1
25 | libuuid1
26 | libwayland-client0
27 | libxcomposite1
28 | libxcursor1
29 | libxdamage1
30 | libxfixes3
31 | libxft2
32 | libxinerama1
33 | libxrandr2
34 | libxt6
35 | libxtst6
36 | libxxf86vm1
37 | locales
38 | locales-all
39 | make
40 | net-tools
41 | procps
42 | sudo
43 | unzip
44 | zlib1g
45 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:12.2.2-base-ubuntu22.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | WORKDIR /
23 |
24 | # Install the AWS CLI to use for staging input and output data
25 | RUN pip3 install awscli
26 |
27 | # Create directories for the MATLAB install and for the JobStorageLocation
28 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
29 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
30 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
31 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
32 |
33 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
34 | # while running MATLAB.
35 | WORKDIR ${JOB_STORAGE_LOCATION}
36 |
37 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
38 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
39 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
40 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | csh
3 | g++
4 | gcc
5 | gfortran
6 | libasound2
7 | libc6
8 | libcairo-gobject2
9 | libcairo2
10 | libcap2
11 | libcups2
12 | libdrm2
13 | libfontconfig1
14 | libgbm1
15 | libgdk-pixbuf-2.0-0
16 | libgl1
17 | libglib2.0-0
18 | libgstreamer-plugins-base1.0-0
19 | libgstreamer1.0-0
20 | libgtk-3-0
21 | libice6
22 | libltdl7
23 | libnspr4
24 | libnss3
25 | libpam0g
26 | libpango-1.0-0
27 | libpangocairo-1.0-0
28 | libpangoft2-1.0-0
29 | libsndfile1
30 | libudev1
31 | libuuid1
32 | libwayland-client0
33 | libxcomposite1
34 | libxcursor1
35 | libxdamage1
36 | libxfixes3
37 | libxft2
38 | libxinerama1
39 | libxrandr2
40 | libxt6
41 | libxtst6
42 | libxxf86vm1
43 | locales
44 | locales-all
45 | make
46 | net-tools
47 | procps
48 | python3
49 | python3-pip
50 | sudo
51 | unzip
52 | zip
53 | zlib1g
54 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | fontconfig.x86_64
6 | gdk-pixbuf2.x86_64
7 | glib2.x86_64
8 | glibc.x86_64
9 | glibc-langpack-en.x86_64
10 | glibc-locale-source.x86_64
11 | gtk3.x86_64
12 | libICE.x86_64
13 | libXcomposite.x86_64
14 | libXcursor.x86_64
15 | libXdamage.x86_64
16 | libXfixes.x86_64
17 | libXft.x86_64
18 | libXinerama.x86_64
19 | libXrandr.x86_64
20 | libXt.x86_64
21 | libXtst.x86_64
22 | libXxf86vm.x86_64
23 | libcap.x86_64
24 | libdrm.x86_64
25 | libglvnd-glx.x86_64
26 | libsndfile.x86_64
27 | libtool-ltdl.x86_64
28 | libuuid.x86_64
29 | libwayland-client.x86_64
30 | make.x86_64
31 | mesa-libgbm.x86_64
32 | net-tools.x86_64
33 | nspr.x86_64
34 | nss.x86_64
35 | nss-util.x86_64
36 | pam.x86_64
37 | pango.x86_64
38 | procps-ng.x86_64
39 | sudo.x86_64
40 | systemd-libs.x86_64
41 | unzip.x86_64
42 | which.x86_64
43 | zlib.x86_64
44 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubi9/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
14 |
15 | # Uncomment the following RUN yum statement to enable code generation capabilities,
16 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
17 | #
18 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
19 |
20 | # Uncomment the following line if you require the fuse filesystem
21 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
22 |
23 | # Uncomment to resolve certain license manager issues
24 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
25 |
26 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubi9/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | fontconfig.x86_64
6 | gdk-pixbuf2.x86_64
7 | glib2.x86_64
8 | glibc.x86_64
9 | glibc-langpack-en.x86_64
10 | glibc-locale-source.x86_64
11 | gstreamer1.x86_64
12 | gstreamer1-plugins-base.x86_64
13 | gtk3.x86_64
14 | libICE.x86_64
15 | libXcomposite.x86_64
16 | libXcursor.x86_64
17 | libXdamage.x86_64
18 | libXfixes.x86_64
19 | libXft.x86_64
20 | libXinerama.x86_64
21 | libXrandr.x86_64
22 | libXt.x86_64
23 | libXtst.x86_64
24 | libXxf86vm.x86_64
25 | libcap.x86_64
26 | libdrm.x86_64
27 | libglvnd-glx.x86_64
28 | libsndfile.x86_64
29 | libtool-ltdl.x86_64
30 | libuuid.x86_64
31 | libwayland-client.x86_64
32 | make.x86_64
33 | mesa-libgbm.x86_64
34 | net-tools.x86_64
35 | nspr.x86_64
36 | nss.x86_64
37 | nss-util.x86_64
38 | pam.x86_64
39 | pango.x86_64
40 | procps-ng.x86_64
41 | sudo.x86_64
42 | systemd-libs.x86_64
43 | unzip.x86_64
44 | which.x86_64
45 | zlib.x86_64
46 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libc6
4 | libcairo-gobject2
5 | libcairo2
6 | libcap2
7 | libcups2
8 | libdrm2
9 | libfontconfig1
10 | libgbm1
11 | libgdk-pixbuf2.0-0
12 | libgl1
13 | libglib2.0-0
14 | libgstreamer-plugins-base1.0-0
15 | libgstreamer1.0-0
16 | libgtk-3-0
17 | libice6
18 | libltdl7
19 | libnspr4
20 | libnss3
21 | libpam0g
22 | libpango-1.0-0
23 | libpangocairo-1.0-0
24 | libpangoft2-1.0-0
25 | libsndfile1
26 | libudev1
27 | libuuid1
28 | libwayland-client0
29 | libxcomposite1
30 | libxcursor1
31 | libxdamage1
32 | libxfixes3
33 | libxft2
34 | libxinerama1
35 | libxrandr2
36 | libxt6
37 | libxtst6
38 | libxxf86vm1
39 | locales
40 | locales-all
41 | make
42 | net-tools
43 | procps
44 | sudo
45 | unzip
46 | zlib1g
47 | wget
48 | libcrypt-dev
49 | linux-libc-dev
50 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean && apt-get -y autoremove \
12 | && rm -rf /var/lib/apt/lists/*
13 |
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | WORKDIR /
17 |
18 | # Uncomment the following RUN apt-get statement if you will be using Simulink
19 | # code generation capabilities, or if you will be compiling your own mex files
20 | # with gcc, g++, or gfortran.
21 | #
22 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
23 |
24 | # Uncomment the following RUN apt-get statement to enable running a program
25 | # that makes use of MATLAB's Engine API for C and Fortran
26 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
27 | #
28 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
29 |
30 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
31 | # (mp3, mp4, etc.) from within MATLAB.
32 | #
33 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
34 | # gstreamer1.0-tools \
35 | # gstreamer1.0-libav \
36 | # gstreamer1.0-plugins-base \
37 | # gstreamer1.0-plugins-good \
38 | # gstreamer1.0-plugins-bad \
39 | # gstreamer1.0-plugins-ugly \
40 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
41 |
42 | # Uncomment the following line if you require the fuse filesystem
43 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
44 |
45 | # Uncomment the following line if you require firefox
46 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
47 |
48 | # Uncomment to resolve any license manager issues
49 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
50 |
--------------------------------------------------------------------------------
/matlab-deps/r2024a/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libc6
4 | libcairo-gobject2
5 | libcairo2
6 | libcap2
7 | libcups2
8 | libdrm2
9 | libfontconfig1
10 | libgbm1
11 | libgdk-pixbuf-2.0-0
12 | libgl1
13 | libglib2.0-0
14 | libgstreamer-plugins-base1.0-0
15 | libgstreamer1.0-0
16 | libgtk-3-0
17 | libice6
18 | libltdl7
19 | libnspr4
20 | libnss3
21 | libpam0g
22 | libpango-1.0-0
23 | libpangocairo-1.0-0
24 | libpangoft2-1.0-0
25 | libsndfile1
26 | libudev1
27 | libuuid1
28 | libwayland-client0
29 | libxcomposite1
30 | libxcursor1
31 | libxdamage1
32 | libxfixes3
33 | libxft2
34 | libxinerama1
35 | libxrandr2
36 | libxt6
37 | libxtst6
38 | libxxf86vm1
39 | locales
40 | locales-all
41 | make
42 | net-tools
43 | procps
44 | sudo
45 | unzip
46 | zlib1g
47 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:12.2.2-base-ubuntu22.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get upgrade -y \
18 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
19 | && apt-get clean && apt-get -y autoremove \
20 | && rm -rf /var/lib/apt/lists/*
21 |
22 | WORKDIR /
23 |
24 | # Install the AWS CLI to use for staging input and output data
25 | RUN pip3 install awscli
26 |
27 | # Create directories for the MATLAB install and for the JobStorageLocation
28 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
29 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
30 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
31 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
32 |
33 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
34 | # while running MATLAB.
35 | WORKDIR ${JOB_STORAGE_LOCATION}
36 |
37 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
38 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
39 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
40 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libatomic1
4 | libc6
5 | libcairo-gobject2
6 | libcairo2
7 | libcap2
8 | libcrypt1
9 | libcups2
10 | libdrm2
11 | libfontconfig1
12 | libfribidi0
13 | libgbm1
14 | libgdk-pixbuf-2.0-0
15 | libgl1
16 | libglib2.0-0
17 | libgstreamer-plugins-base1.0-0
18 | libgstreamer1.0-0
19 | libgtk-3-0
20 | libice6
21 | libltdl7
22 | libmd0
23 | libnettle8
24 | libnspr4
25 | libnss3
26 | libpam0g
27 | libpango-1.0-0
28 | libpangocairo-1.0-0
29 | libpangoft2-1.0-0
30 | libpixman-1-0
31 | libsndfile1
32 | libtirpc3
33 | libudev1
34 | libuuid1
35 | libwayland-client0
36 | libxcomposite1
37 | libxcursor1
38 | libxdamage1
39 | libxfixes3
40 | libxfont2
41 | libxft2
42 | libxinerama1
43 | libxrandr2
44 | libxt6
45 | libxtst6
46 | libxxf86vm1
47 | locales
48 | locales-all
49 | make
50 | net-tools
51 | procps
52 | sudo
53 | unzip
54 | zlib1g
55 | csh
56 | g++
57 | gcc
58 | gfortran
59 | python3
60 | python3-pip
61 | zip
62 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | # Uncomment the following RUN yum statement to enable code generation capabilities,
17 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
18 | #
19 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
20 |
21 | # Uncomment the following line if you require the fuse filesystem
22 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
23 |
24 | # Uncomment to resolve certain license manager issues
25 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
26 |
27 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | fontconfig.x86_64
6 | fribidi.x86_64
7 | gdk-pixbuf2.x86_64
8 | glib2.x86_64
9 | glibc.x86_64
10 | glibc-langpack-en.x86_64
11 | glibc-locale-source.x86_64
12 | gtk3.x86_64
13 | libICE.x86_64
14 | libXcomposite.x86_64
15 | libXcursor.x86_64
16 | libXdamage.x86_64
17 | libXfixes.x86_64
18 | libXft.x86_64
19 | libXinerama.x86_64
20 | libXrandr.x86_64
21 | libXt.x86_64
22 | libXtst.x86_64
23 | libXxf86vm.x86_64
24 | libatomic.x86_64
25 | libcap.x86_64
26 | libdrm.x86_64
27 | libglvnd-glx.x86_64
28 | libsndfile.x86_64
29 | libtirpc.x86_64
30 | libtool-ltdl.x86_64
31 | libuuid.x86_64
32 | libwayland-client.x86_64
33 | libxcrypt.x86_64
34 | make.x86_64
35 | mesa-libgbm.x86_64
36 | net-tools.x86_64
37 | nspr.x86_64
38 | nss.x86_64
39 | nss-util.x86_64
40 | pam.x86_64
41 | pango.x86_64
42 | pixman.x86_64
43 | procps-ng.x86_64
44 | sudo.x86_64
45 | systemd-libs.x86_64
46 | unzip.x86_64
47 | which.x86_64
48 | zlib.x86_64
49 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubi9/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG C
13 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
14 |
15 | # Uncomment the following RUN yum statement to enable code generation capabilities,
16 | # or if you will be compiling your own mex files with gcc, g++, or gfortran.
17 | #
18 | #RUN yum install -y gcc.x86_64 gcc-c++.x86_64 gcc-gfortran.x86_64 && yum --disableplugin=subscription-manager clean all -y
19 |
20 | # Uncomment the following line if you require the fuse filesystem
21 | #RUN yum install -y fuse-libs.x86_64 && yum --disableplugin=subscription-manager clean all -y
22 |
23 | # Uncomment to resolve certain license manager issues
24 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
25 |
26 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubi9/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | fontconfig.x86_64
6 | fribidi.x86_64
7 | gdk-pixbuf2.x86_64
8 | glib2.x86_64
9 | glibc.x86_64
10 | glibc-langpack-en.x86_64
11 | glibc-locale-source.x86_64
12 | gstreamer1.x86_64
13 | gstreamer1-plugins-base.x86_64
14 | gtk3.x86_64
15 | libICE.x86_64
16 | libXcomposite.x86_64
17 | libXcursor.x86_64
18 | libXdamage.x86_64
19 | libXfixes.x86_64
20 | libXft.x86_64
21 | libXinerama.x86_64
22 | libXrandr.x86_64
23 | libXt.x86_64
24 | libXtst.x86_64
25 | libXxf86vm.x86_64
26 | libatomic.x86_64
27 | libcap.x86_64
28 | libdrm.x86_64
29 | libglvnd-glx.x86_64
30 | libsndfile.x86_64
31 | libtirpc.x86_64
32 | libtool-ltdl.x86_64
33 | libuuid.x86_64
34 | libwayland-client.x86_64
35 | libxcrypt-compat.x86_64
36 | make.x86_64
37 | mesa-libgbm.x86_64
38 | net-tools.x86_64
39 | nettle.x86_64
40 | nspr.x86_64
41 | nss.x86_64
42 | nss-util.x86_64
43 | pam.x86_64
44 | pango.x86_64
45 | pixman.x86_64
46 | procps-ng.x86_64
47 | sudo.x86_64
48 | systemd-libs.x86_64
49 | unzip.x86_64
50 | which.x86_64
51 | zlib.x86_64
52 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libatomic1
4 | libc6
5 | libcairo-gobject2
6 | libcairo2
7 | libcap2
8 | libcrypt1
9 | libcups2
10 | libdrm2
11 | libfontconfig1
12 | libfribidi0
13 | libgbm1
14 | libgdk-pixbuf2.0-0
15 | libgl1
16 | libglib2.0-0
17 | libgstreamer-plugins-base1.0-0
18 | libgstreamer1.0-0
19 | libgtk-3-0
20 | libice6
21 | libltdl7
22 | libmd0
23 | libnspr4
24 | libnss3
25 | libpam0g
26 | libpango-1.0-0
27 | libpangocairo-1.0-0
28 | libpangoft2-1.0-0
29 | libpixman-1-0
30 | libsndfile1
31 | libtirpc3
32 | libudev1
33 | libuuid1
34 | libwayland-client0
35 | libxcomposite1
36 | libxcursor1
37 | libxdamage1
38 | libxfixes3
39 | libxfont2
40 | libxft2
41 | libxinerama1
42 | libxrandr2
43 | libxt6
44 | libxtst6
45 | libxxf86vm1
46 | locales
47 | locales-all
48 | make
49 | net-tools
50 | procps
51 | sudo
52 | unzip
53 | zlib1g
54 | wget
55 | libcrypt-dev
56 | linux-libc-dev
57 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean && apt-get -y autoremove \
12 | && rm -rf /var/lib/apt/lists/*
13 |
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | WORKDIR /
17 |
18 | # Uncomment the following RUN apt-get statement if you will be using Simulink
19 | # code generation capabilities, or if you will be compiling your own mex files
20 | # with gcc, g++, or gfortran.
21 | #
22 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
23 |
24 | # Uncomment the following RUN apt-get statement to enable running a program
25 | # that makes use of MATLAB's Engine API for C and Fortran
26 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
27 | #
28 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
29 |
30 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
31 | # (mp3, mp4, etc.) from within MATLAB.
32 | #
33 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
34 | # gstreamer1.0-tools \
35 | # gstreamer1.0-libav \
36 | # gstreamer1.0-plugins-base \
37 | # gstreamer1.0-plugins-good \
38 | # gstreamer1.0-plugins-bad \
39 | # gstreamer1.0-plugins-ugly \
40 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
41 |
42 | # Uncomment the following line if you require the fuse filesystem
43 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
44 |
45 | # Uncomment the following line if you require firefox
46 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
47 |
48 | # Uncomment to resolve any license manager issues
49 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
50 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libatomic1
4 | libc6
5 | libcairo-gobject2
6 | libcairo2
7 | libcap2
8 | libcrypt1
9 | libcups2
10 | libdrm2
11 | libfontconfig1
12 | libfribidi0
13 | libgbm1
14 | libgdk-pixbuf-2.0-0
15 | libgl1
16 | libglib2.0-0
17 | libgstreamer-plugins-base1.0-0
18 | libgstreamer1.0-0
19 | libgtk-3-0
20 | libice6
21 | libltdl7
22 | libmd0
23 | libnettle8
24 | libnspr4
25 | libnss3
26 | libpam0g
27 | libpango-1.0-0
28 | libpangocairo-1.0-0
29 | libpangoft2-1.0-0
30 | libpixman-1-0
31 | libsndfile1
32 | libtirpc3
33 | libudev1
34 | libuuid1
35 | libwayland-client0
36 | libxcomposite1
37 | libxcursor1
38 | libxdamage1
39 | libxfixes3
40 | libxfont2
41 | libxft2
42 | libxinerama1
43 | libxrandr2
44 | libxt6
45 | libxtst6
46 | libxxf86vm1
47 | locales
48 | locales-all
49 | make
50 | net-tools
51 | procps
52 | sudo
53 | unzip
54 | zlib1g
55 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubuntu24.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM ubuntu:24.04
3 |
4 | LABEL maintainer="The MathWorks"
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean \
12 | && apt-get -y autoremove \
13 | && rm -rf /var/lib/apt/lists/*
14 |
15 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
16 |
17 | WORKDIR /
18 |
19 | # Uncomment the following RUN apt-get statement if you will be using Simulink
20 | # code generation capabilities, or if you will be compiling your own mex files
21 | # with gcc, g++, or gfortran.
22 | #
23 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y gcc g++ gfortran && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
24 |
25 | # Uncomment the following RUN apt-get statement to enable running a program
26 | # that makes use of MATLAB's Engine API for C and Fortran
27 | # https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
28 | #
29 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install -y csh && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
30 |
31 | # Uncomment ALL of the following RUN apt-get statement to enable the playing of media files
32 | # (mp3, mp4, etc.) from within MATLAB.
33 | #
34 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libgstreamer1.0-0 \
35 | # gstreamer1.0-tools \
36 | # gstreamer1.0-libav \
37 | # gstreamer1.0-plugins-base \
38 | # gstreamer1.0-plugins-good \
39 | # gstreamer1.0-plugins-bad \
40 | # gstreamer1.0-plugins-ugly \
41 | # && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
42 |
43 | # Uncomment the following line if you require the fuse filesystem
44 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y libfuse2 && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
45 |
46 | # Uncomment the following line if you require firefox
47 | #RUN export DEBIAN_FRONTEND=noninteractive && apt-get update -y && apt-get install --no-install-recommends -y firefox && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
48 |
49 | # Uncomment to resolve any license manager issues
50 | #RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
51 |
--------------------------------------------------------------------------------
/matlab-deps/r2024b/ubuntu24.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | debianutils
3 | libasound2t64
4 | libatomic1
5 | libc6
6 | libcairo-gobject2
7 | libcairo2
8 | libcap2
9 | libcrypt1
10 | libcups2t64
11 | libdrm2
12 | libfontconfig1
13 | libfribidi0
14 | libgbm1
15 | libgdk-pixbuf-2.0-0
16 | libgl1
17 | libglib2.0-0t64
18 | libgstreamer-plugins-base1.0-0
19 | libgstreamer1.0-0
20 | libgtk-3-0t64
21 | libice6
22 | libltdl7
23 | libmd0
24 | libnettle8t64
25 | libnspr4
26 | libnss3
27 | libpam0g
28 | libpango-1.0-0
29 | libpangocairo-1.0-0
30 | libpangoft2-1.0-0
31 | libpixman-1-0
32 | libsndfile1
33 | libtirpc3t64
34 | libudev1
35 | libuuid1
36 | libwayland-client0
37 | libxcomposite1
38 | libxcursor1
39 | libxdamage1
40 | libxfixes3
41 | libxfont2
42 | libxft2
43 | libxinerama1
44 | libxrandr2
45 | libxt6t64
46 | libxtst6
47 | libxxf86vm1
48 | locales
49 | locales-all
50 | make
51 | net-tools
52 | procps
53 | sudo
54 | unzip
55 | zlib1g
56 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/aws-batch/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | FROM nvidia/cuda:12.2.2-base-ubuntu22.04
4 |
5 | LABEL maintainer="The MathWorks, Inc."
6 |
7 | # base-dependencies.txt lists libraries required by MATLAB, except for:
8 | # csh - Support MATLAB's Engine API for C and Fortran. See https://www.mathworks.com/help/matlab/matlab_external/introducing-matlab-engine.html
9 | # gcc, g++, gfortran - Support Simulink code generation and mex with gcc, g++, or gfortran.
10 | # locales, locales-all - Provide extended locales support
11 | # python3, python3-pip - Python and pip are to run/install the AWS CLI.
12 | # unzip, zip - Used to stage input/output data.
13 | COPY base-dependencies.txt /tmp/base-dependencies.txt
14 |
15 | RUN export DEBIAN_FRONTEND=noninteractive \
16 | && apt-get update \
17 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
18 | && apt-get clean && apt-get -y autoremove \
19 | && rm -rf /var/lib/apt/lists/*
20 |
21 | WORKDIR /
22 |
23 | # Install the AWS CLI to use for staging input and output data
24 | RUN pip3 install awscli
25 |
26 | # Create directories for the MATLAB install and for the JobStorageLocation
27 | ENV JOB_STORAGE_LOCATION /usr/local/JobStorageLocation
28 | ENV MATLAB_INSTALL_LOCATION /usr/local/matlab
29 | RUN mkdir -p ${MATLAB_INSTALL_LOCATION} ${JOB_STORAGE_LOCATION}
30 | RUN chmod -R +wx ${JOB_STORAGE_LOCATION}
31 |
32 | # To avoid inadvertantly polluting the / directory, use the JobStorageLocation
33 | # while running MATLAB.
34 | WORKDIR ${JOB_STORAGE_LOCATION}
35 |
36 | COPY stageDataAndRunJob.sh /usr/local/stageDataAndRunJob.sh
37 | RUN chmod +x /usr/local/stageDataAndRunJob.sh
38 | ENTRYPOINT ["/usr/local/stageDataAndRunJob.sh"]
39 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/aws-batch/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | ibverbs-providers
3 | libasound2
4 | libatomic1
5 | libc6
6 | libcairo-gobject2
7 | libcairo2
8 | libcap2
9 | libcrypt1
10 | libcups2
11 | libdrm2
12 | libfontconfig1
13 | libfribidi0
14 | libgbm1
15 | libgdk-pixbuf-2.0-0
16 | libgl1
17 | libglib2.0-0
18 | libgstreamer-plugins-base1.0-0
19 | libgstreamer1.0-0
20 | libgtk-3-0
21 | libibverbs1
22 | libice6
23 | libltdl7
24 | libnspr4
25 | libnss3
26 | libnuma1
27 | libpam0g
28 | libpango-1.0-0
29 | libpangocairo-1.0-0
30 | libpangoft2-1.0-0
31 | libpixman-1-0
32 | libpsm2-2
33 | librdmacm1
34 | libsndfile1
35 | libtirpc3
36 | libucx0
37 | libuuid1
38 | libwayland-client0
39 | libxcomposite1
40 | libxcursor1
41 | libxdamage1
42 | libxfixes3
43 | libxfont2
44 | libxft2
45 | libxinerama1
46 | libxrandr2
47 | libxt6
48 | libxtst6
49 | libxxf86vm1
50 | locales
51 | locales-all
52 | make
53 | net-tools
54 | procps
55 | sudo
56 | unzip
57 | x11-xkb-utils
58 | zlib1g
59 | csh
60 | g++
61 | gcc
62 | gfortran
63 | python3
64 | python3-pip
65 | zip
66 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubi8/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2025 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi8/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG=C
13 | RUN [ -s /etc/machine-id ] || dbus-uuidgen > /etc/machine-id
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubi8/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | fontconfig.x86_64
6 | fribidi.x86_64
7 | gdk-pixbuf2.x86_64
8 | glib2.x86_64
9 | glibc.x86_64
10 | glibc-langpack-en.x86_64
11 | glibc-locale-source.x86_64
12 | gtk3.x86_64
13 | libICE.x86_64
14 | libXcomposite.x86_64
15 | libXcursor.x86_64
16 | libXdamage.x86_64
17 | libXfixes.x86_64
18 | libXft.x86_64
19 | libXinerama.x86_64
20 | libXrandr.x86_64
21 | libXt.x86_64
22 | libXtst.x86_64
23 | libXxf86vm.x86_64
24 | libatomic.x86_64
25 | libcap.x86_64
26 | libdrm.x86_64
27 | libglvnd-glx.x86_64
28 | libibverbs.x86_64
29 | librdmacm.x86_64
30 | libsndfile.x86_64
31 | libtirpc.x86_64
32 | libtool-ltdl.x86_64
33 | libuuid.x86_64
34 | libwayland-client.x86_64
35 | libxcrypt.x86_64
36 | make.x86_64
37 | mesa-libgbm.x86_64
38 | net-tools.x86_64
39 | nspr.x86_64
40 | nss.x86_64
41 | nss-util.x86_64
42 | numactl-libs.x86_64
43 | pam.x86_64
44 | pango.x86_64
45 | pixman.x86_64
46 | procps-ng.x86_64
47 | sudo.x86_64
48 | unzip.x86_64
49 | which.x86_64
50 | zlib.x86_64
51 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubi9/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2025 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN yum update --disableplugin=subscription-manager -y \
9 | && yum install --disableplugin=subscription-manager -y `cat /tmp/base-dependencies.txt` \
10 | && yum --disableplugin=subscription-manager clean all -y
11 |
12 | ENV LANG=C
13 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
14 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubi9/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | alsa-lib.x86_64
2 | cairo.x86_64
3 | cairo-gobject.x86_64
4 | cups-libs.x86_64
5 | fontconfig.x86_64
6 | fribidi.x86_64
7 | gdk-pixbuf2.x86_64
8 | glib2.x86_64
9 | glibc.x86_64
10 | glibc-langpack-en.x86_64
11 | glibc-locale-source.x86_64
12 | gstreamer1.x86_64
13 | gstreamer1-plugins-base.x86_64
14 | gtk3.x86_64
15 | libICE.x86_64
16 | libXcomposite.x86_64
17 | libXcursor.x86_64
18 | libXdamage.x86_64
19 | libXfixes.x86_64
20 | libXft.x86_64
21 | libXinerama.x86_64
22 | libXrandr.x86_64
23 | libXt.x86_64
24 | libXtst.x86_64
25 | libXxf86vm.x86_64
26 | libatomic.x86_64
27 | libcap.x86_64
28 | libdrm.x86_64
29 | libglvnd-glx.x86_64
30 | libibverbs.x86_64
31 | librdmacm.x86_64
32 | libsndfile.x86_64
33 | libtirpc.x86_64
34 | libtool-ltdl.x86_64
35 | libuuid.x86_64
36 | libwayland-client.x86_64
37 | libxcrypt-compat.x86_64
38 | make.x86_64
39 | mesa-libgbm.x86_64
40 | net-tools.x86_64
41 | nspr.x86_64
42 | nss.x86_64
43 | nss-util.x86_64
44 | numactl-libs.x86_64
45 | pam.x86_64
46 | pango.x86_64
47 | pixman.x86_64
48 | procps-ng.x86_64
49 | sudo.x86_64
50 | unzip.x86_64
51 | which.x86_64
52 | zlib.x86_64
53 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2025 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean && apt-get -y autoremove \
12 | && rm -rf /var/lib/apt/lists/*
13 |
14 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
15 |
16 | WORKDIR /
17 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | ibverbs-providers
3 | libasound2
4 | libatomic1
5 | libc6
6 | libcairo-gobject2
7 | libcairo2
8 | libcap2
9 | libcrypt1
10 | libcups2
11 | libdrm2
12 | libfontconfig1
13 | libfribidi0
14 | libgbm1
15 | libgdk-pixbuf-2.0-0
16 | libgl1
17 | libglib2.0-0
18 | libgstreamer-plugins-base1.0-0
19 | libgstreamer1.0-0
20 | libgtk-3-0
21 | libibverbs1
22 | libice6
23 | libltdl7
24 | libnspr4
25 | libnss3
26 | libnuma1
27 | libpam0g
28 | libpango-1.0-0
29 | libpangocairo-1.0-0
30 | libpangoft2-1.0-0
31 | libpixman-1-0
32 | libpsm2-2
33 | librdmacm1
34 | libsndfile1
35 | libtirpc3
36 | libucx0
37 | libuuid1
38 | libwayland-client0
39 | libxcomposite1
40 | libxcursor1
41 | libxdamage1
42 | libxfixes3
43 | libxfont2
44 | libxft2
45 | libxinerama1
46 | libxrandr2
47 | libxt6
48 | libxtst6
49 | libxxf86vm1
50 | locales
51 | locales-all
52 | make
53 | net-tools
54 | procps
55 | sudo
56 | unzip
57 | x11-xkb-utils
58 | zlib1g
59 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubuntu24.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2025 The MathWorks, Inc.
2 | FROM ubuntu:24.04
3 |
4 | LABEL maintainer="The MathWorks"
5 |
6 | COPY base-dependencies.txt /tmp/base-dependencies.txt
7 |
8 | RUN export DEBIAN_FRONTEND=noninteractive \
9 | && apt-get update \
10 | && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
11 | && apt-get clean \
12 | && apt-get -y autoremove \
13 | && rm -rf /var/lib/apt/lists/*
14 |
15 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
16 |
17 | WORKDIR /
18 |
--------------------------------------------------------------------------------
/matlab-deps/r2025a/ubuntu24.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | debianutils
3 | ibverbs-providers
4 | libasound2t64
5 | libatomic1
6 | libc6
7 | libcairo-gobject2
8 | libcairo2
9 | libcap2
10 | libcrypt1
11 | libcups2t64
12 | libdrm2
13 | libfontconfig1
14 | libfribidi0
15 | libgbm1
16 | libgdk-pixbuf-2.0-0
17 | libgl1
18 | libglib2.0-0t64
19 | libgstreamer-plugins-base1.0-0
20 | libgstreamer1.0-0
21 | libgtk-3-0t64
22 | libibverbs1
23 | libice6
24 | libltdl7
25 | libnspr4
26 | libnss3
27 | libnuma1
28 | libpam0g
29 | libpango-1.0-0
30 | libpangocairo-1.0-0
31 | libpangoft2-1.0-0
32 | libpixman-1-0
33 | libpsm2-2
34 | librdmacm1t64
35 | libsndfile1
36 | libtirpc3t64
37 | libucx0
38 | libuhd4.6.0-dpdk
39 | libuuid1
40 | libwayland-client0
41 | libxcomposite1
42 | libxcursor1
43 | libxdamage1
44 | libxfixes3
45 | libxfont2
46 | libxft2
47 | libxinerama1
48 | libxrandr2
49 | libxt6t64
50 | libxtst6
51 | libxxf86vm1
52 | locales
53 | locales-all
54 | make
55 | net-tools
56 | procps
57 | sudo
58 | unzip
59 | x11-xkb-utils
60 | zlib1g
61 |
--------------------------------------------------------------------------------
/matlab-runtime-deps/README.md:
--------------------------------------------------------------------------------
1 | # MATLAB Runtime Dependencies
2 |
3 | This container includes the dependencies required by MATLAB® Runtime.
4 |
5 | **Note: This container does not include MATLAB Runtime.**
6 |
7 | ## Supported Tags
8 |
9 | | Tags | MATLAB Version | Operating System | Base Image | Usage Notes |
10 | | ------------ |:--------------:| ---------------- |----------- | ----------- |
11 | |[`latest`, `r2024b`, `r2024b-ubuntu24.04`](https://github.com/mathworks-ref-arch/container-images/blob/main/matlab-runtime-deps/r2024b/ubuntu24.04/Dockerfile) | r2024b | Ubuntu 24.04 | ubuntu:24.04 | |
12 | |[`r2024a`, `r2024a-ubuntu22.04`](https://github.com/mathworks-ref-arch/container-images/blob/main/matlab-runtime-deps/r2024a/ubuntu22.04/Dockerfile) | r2024a | Ubuntu 22.04 | ubuntu:22.04 | |
13 | |[`r2023b`, `r2023b-ubuntu22.04`](https://github.com/mathworks-ref-arch/container-images/blob/main/matlab-runtime-deps/r2023b/ubuntu22.04/Dockerfile) | r2023b | Ubuntu 22.04 | ubuntu:22.04 | |
14 |
15 | ## License
16 | The license for this container is available [here](https://github.com/mathworks-ref-arch/container-images/blob/main/LICENSE.md).
17 |
18 | ## Security Reporting
19 | To report suspected security issues, follow [these instructions](https://github.com/mathworks-ref-arch/container-images/blob/main/SECURITY.md).
20 |
21 | ## Technical Support
22 | If you require assistance or have a request for additional features or capabilities, please contact [MathWorks Technical Support](https://www.mathworks.com/support/contact_us.html).
23 |
24 | ----
25 |
26 | Copyright 2023-2025 The MathWorks, Inc.
27 |
28 | ----
--------------------------------------------------------------------------------
/matlab-runtime-deps/r2023b/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 |
3 | FROM ubuntu:22.04
4 |
5 | ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC"
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN apt-get update && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
10 | && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
11 |
12 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
13 |
--------------------------------------------------------------------------------
/matlab-runtime-deps/r2023b/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates gstreamer1.0-libav gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-tools libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcups2 libdrm2 libdw1 libgbm1 libgdk-pixbuf-2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc2 libodbcinst2 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libsndfile1 libsystemd0 libuuid1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 net-tools procps unzip zlib1g
--------------------------------------------------------------------------------
/matlab-runtime-deps/r2024a/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | FROM ubuntu:22.04
4 |
5 | ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC"
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN apt-get update && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
10 | && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
11 |
12 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
13 |
--------------------------------------------------------------------------------
/matlab-runtime-deps/r2024a/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates gstreamer1.0-libav gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-tools libasound2 libc6 libcairo-gobject2 libcairo2 libcap2 libcrypt1 libcups2 libdrm2 libdw1 libgbm1 libgdk-pixbuf-2.0-0 libgl1 libglib2.0-0 libgomp1 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0 libice6 libnspr4 libnss3 libodbc2 libodbcinst2 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libsndfile1 libsystemd0 libuuid1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxinerama1 libxrandr2 libxt6 libxtst6 libxxf86vm1 net-tools procps unzip zlib1g
--------------------------------------------------------------------------------
/matlab-runtime-deps/r2024b/ubuntu24.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | FROM ubuntu:24.04
4 |
5 | ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC"
6 |
7 | COPY base-dependencies.txt /tmp/base-dependencies.txt
8 |
9 | RUN apt-get update && apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` \
10 | && apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
11 |
12 | RUN [ -d /usr/share/X11/xkb ] || mkdir -p /usr/share/X11/xkb
13 |
--------------------------------------------------------------------------------
/matlab-runtime-deps/r2024b/ubuntu24.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-tools libasound2t64 libatomic1 libc6 libcairo-gobject2 libcairo2 libcap2 libcups2t64 libdrm2 libfontconfig1 libfribidi0 libgbm1 libgdk-pixbuf-2.0-0 libgl1 libglib2.0-0t64 libgstreamer-plugins-base1.0-0 libgstreamer1.0-0 libgtk-3-0t64 libgtk2.0-0t64 libice6 libltdl7 libnettle8t64 libnspr4 libnss3 libpam0g libpango-1.0-0 libpangocairo-1.0-0 libpangoft2-1.0-0 libpixman-1-0 libsndfile1 libtirpc3t64 libuuid1 libwayland-client0 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxfont2 libxft2 libxinerama1 libxrandr2 libxt6t64 libxtst6 libxxf86vm1 net-tools procps unzip zlib1g
--------------------------------------------------------------------------------
/matlab/build/config/MATLAB.desktop:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 | [Desktop Entry]
3 | Version=1.0
4 | Type=Application
5 | Name=MATLAB {{MATLAB_RELEASE}}
6 | Comment=
7 | Exec=/usr/bin/bash -ic 'matlab -desktop'
8 | Icon=/opt/matlab/{{MATLAB_RELEASE}}/bin/glnxa64/cef_resources/matlab_icon.png
9 | Path=
10 | Terminal=false
11 | StartupNotify=false
12 | Path=/home/matlab/Documents/MATLAB
13 |
--------------------------------------------------------------------------------
/matlab/build/config/localsudo:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 |
3 | # Allow members of the admin group to sudo without password
4 | Defaults env_keep += "http_proxy https_proxy no_proxy MW_PROXY_HOST MW_PROXY_PORT MLM_LICENSE_FILE MW_SERVICEHOST_USE_HOSTNAME_FOR_PERSISTENCE"
5 | matlab ALL=(ALL:ALL) NOPASSWD:ALL
6 |
--------------------------------------------------------------------------------
/matlab/build/config/matlab.prf:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 | # MATLAB Preferences
3 | CurrentKeyBindingSet=SWindows
4 |
--------------------------------------------------------------------------------
/matlab/build/config/matlab_deep_learning/MNISTExample.mlx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/matlab/build/config/matlab_deep_learning/MNISTExample.mlx
--------------------------------------------------------------------------------
/matlab/build/config/novnc_login_redirect.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
--------------------------------------------------------------------------------
/matlab/build/config/startup.m:
--------------------------------------------------------------------------------
1 | % Copyright 2024 The MathWorks, Inc.
2 |
3 | function startup
4 |
5 | % Setup default proxy settings based on the environment variables that
6 | % are set in the run.sh script.
7 | host = getenv('MW_PROXY_HOST');
8 | port = getenv('MW_PROXY_PORT');
9 | if ~isempty(host) && ~isempty(port)
10 | matlab.net.internal.copyProxySettingsFromEnvironment();
11 | end
12 |
13 | end
14 |
--------------------------------------------------------------------------------
/matlab/build/config/xfce4/desktop/icons.screen0.rc:
--------------------------------------------------------------------------------
1 | [xfdesktop-version-4.10.3+-rcfile_format]
2 | 4.10.3+=true
3 |
4 | [/home/matlab/Desktop/MATLAB.desktop]
5 | row=1
6 | col=1
7 |
8 |
--------------------------------------------------------------------------------
/matlab/build/config/xfce4/panel/launcher-10/panel-file-manager.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Type=Application
4 | Exec=exo-open --launch FileManager %u
5 | Icon=system-file-manager
6 | StartupNotify=true
7 | Terminal=false
8 | Categories=Utility;X-XFCE;X-Xfce-Toplevel;
9 | OnlyShowIn=XFCE;
10 | X-XFCE-MimeType=inode/directory;x-scheme-handler/trash;
11 | Name=File Manager
12 | Comment=Browse the file system
13 | X-XFCE-Source=file:///usr/share/applications/exo-file-manager.desktop
14 |
--------------------------------------------------------------------------------
/matlab/build/config/xfce4/panel/launcher-12/panel-app-finder.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Exec=xfce4-appfinder
4 | Icon=edit-find
5 | StartupNotify=true
6 | Terminal=false
7 | Type=Application
8 | Categories=Utility;X-XFCE;
9 | Name=Application Finder
10 | Comment=Find and launch applications installed on your system
11 | X-XFCE-Source=file:///usr/share/applications/xfce4-appfinder.desktop
12 |
--------------------------------------------------------------------------------
/matlab/build/config/xfce4/panel/launcher-9/panel-terminal.desktop:
--------------------------------------------------------------------------------
1 | [Desktop Entry]
2 | Version=1.0
3 | Type=Application
4 | Exec=exo-open --launch TerminalEmulator
5 | Icon=utilities-terminal
6 | StartupNotify=true
7 | Terminal=false
8 | Categories=Utility;X-XFCE;X-Xfce-Toplevel;
9 | OnlyShowIn=XFCE;
10 | Name=Terminal Emulator
11 | Comment=Use the command line
12 | X-XFCE-Source=file:///usr/share/applications/exo-terminal-emulator.desktop
13 |
--------------------------------------------------------------------------------
/matlab/build/config/xfce4/xfconf/xfce-perchannel-xml/wallpaper.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/matlab/build/config/xfce4/xfconf/xfce-perchannel-xml/wallpaper.jpg
--------------------------------------------------------------------------------
/matlab/build/config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/matlab/build/config/xscreensaver:
--------------------------------------------------------------------------------
1 | mode: off
2 |
3 |
--------------------------------------------------------------------------------
/matlab/build/config/xstartup:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Copyright 2021-2024 The MathWorks, Inc.
4 |
5 | xhost +
6 |
7 | # SESSION_MANAGER is inherited from the environment and some window
8 | # managers require that it be cleared.
9 | # http://osdir.com/ml/gnome.ximian.snapshots/2002-09/msg00034.html
10 | unset SESSION_MANAGER
11 |
12 | # Startup scripts, e.g. /etc/xdg/xfce4/xinitrc require
13 | # http://en.wikipedia.org/wiki/D-Bus to run correctly.
14 | unset DBUS_SESSION_BUS_ADDRESS
15 |
16 | # Set VNCSESSION to tell /etc/xdg/xfce4/xinitrc to not run xscreensaver
17 | # http://vstone.eu/2009/04/disabling-xscreensaver-when-using-xfce-vnc/
18 | export VNCSESSION=yes
19 |
20 | startxfce4 &
21 |
22 | # Make sure that copy / paste are correctly forwarded to the VNC viewer
23 | vncconfig -nowin
24 |
--------------------------------------------------------------------------------
/matlab/build/readmes/browser_readme:
--------------------------------------------------------------------------------
1 | Welcome to the MATLAB Container
2 |
3 | This container includes commercial software products of The MathWorks,
4 | Inc. ("MathWorks Programs") and related materials. MathWorks Programs are
5 | licensed under the MathWorks Software License Agreement, available in the
6 | MATLAB installation in this container. Related materials in this
7 | container are licensed under separate licenses which can be found in
8 | their respective folders.
9 |
10 | Use the -help flag to learn more about the usage of this container:
11 |
12 | docker run mathworks/matlab:{{MATLAB_RELEASE}} -help
13 |
14 | To access MATLAB running in the container via web browser, make sure you have exposed port 8888.
15 | To get started:
16 |
17 | Point a browser to port 8888 of the docker host machine running
18 | this container
19 |
20 | http://hostname:8888/index.html
21 |
22 | If want to launch MATLAB on a different base url, you need to set MWI_BASE_URL environment variable.
23 | `MWI_BASE_URL`: Default value is '/'. The url at which MATLAB will be accessible at.
24 | Must start with '/'. If set to "/matlab", the url to access MATLAB would be:
25 | `http://hostname:8888/matlab/index.html`
26 |
27 | For a complete list of environment variables, check the link below:
28 | https://github.com/mathworks/matlab-proxy/blob/main/Advanced-Usage.md
29 |
30 | If you require assistance or have a request for additional features or capabilities, please contact MathWorks Technical Support: https://www.mathworks.com/support/contact_us.html
31 |
--------------------------------------------------------------------------------
/matlab/build/readmes/help_readme:
--------------------------------------------------------------------------------
1 | Welcome to the MATLAB Container
2 |
3 | This help page documents the different flags and environment variables that you can use when starting the container.
4 |
5 | Options:
6 | -help Show this screen.
7 | -vnc Start the VNC server process for MATLAB desktop.
8 | -browser Start MATLAB desktop to access it in a browser.
9 | -shell Start a shell in the container.
10 | -batch Start MATLAB in batch mode on container startup, and run the specified command. Requires MLM_LICENSE_FILE to be set.
11 |
12 | Environment variables:
13 | General:
14 | MLM_LICENSE_FILE Use to license MATLAB; specify either a mounted license file or a license server of the form port@hostname.
15 | PROXY_SETTINGS Use a proxy server to connect to the MathWorks licensing servers.
16 | PASSWORD Change the password used to access the MATLAB desktop.
17 |
18 | If -browser flag is used to launch the container:
19 | MWI_BASE_URL Will set the base url on which MATLAB will be accessible on.
20 |
21 | Find detailed documentation for this container at the link below:
22 | https://hub.docker.com/r/mathworks/matlab
23 |
--------------------------------------------------------------------------------
/matlab/build/readmes/vnc_readme:
--------------------------------------------------------------------------------
1 | Welcome to the MATLAB Container
2 |
3 | This container includes commercial software products of The MathWorks,
4 | Inc. ("MathWorks Programs") and related materials. MathWorks Programs are
5 | licensed under the MathWorks Software License Agreement, available in the
6 | MATLAB installation in this container. Related materials in this
7 | container are licensed under separate licenses which can be found in
8 | their respective folders.
9 |
10 | Use the -help flag to learn more about the usage of this container:
11 |
12 | docker run mathworks/matlab:{{MATLAB_RELEASE}} -help
13 |
14 | To be able to access the container via web browser or VNC, make sure you have exposed port 6080 and 5901, respectively.
15 | To get started, either
16 |
17 | 1. Point a browser to port 6080 of the docker host machine running
18 | this container
19 |
20 | http://hostname:6080
21 |
22 | 2. Use a VNC client to connect to display 1 of the docker host
23 | machine
24 |
25 | hostname:1
26 |
27 | The default password to access the container desktop is
28 |
29 | matlab
30 |
31 | If you require assistance or have a request for additional features or capabilities, please contact MathWorks Technical Support: https://www.mathworks.com/support/contact_us.html
32 |
--------------------------------------------------------------------------------
/matlab/build/readmes/welcome_readme:
--------------------------------------------------------------------------------
1 | Welcome to the MATLAB Container
2 |
3 | This container includes commercial software products of The MathWorks,
4 | Inc. ("MathWorks Programs") and related materials. MathWorks Programs are
5 | licensed under the MathWorks Software License Agreement, available in the
6 | MATLAB installation in this container. Related materials in this
7 | container are licensed under separate licenses which can be found in
8 | their respective folders.
9 |
10 | Use the -help flag to learn more about the usage of this container:
11 |
12 | docker run mathworks/matlab:{{MATLAB_RELEASE}} -help
13 |
14 | If you require assistance or have a request for additional features or capabilities, please contact MathWorks Technical Support: https://www.mathworks.com/support/contact_us.html
15 |
--------------------------------------------------------------------------------
/matlab/build/run.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | # Copyright 2021-2024 The MathWorks, Inc.
4 |
5 | set -e
6 |
7 | . $(dirname "$0")/utils.sh
8 |
9 | modes=0
10 |
11 | CUSTOM_COMMAND=""
12 |
13 | while [ $# -gt 0 ]; do
14 | case "$1" in
15 | -help)
16 | HELP=true
17 | modes=$((modes + 1))
18 | ;;
19 | -vnc | -shell)
20 | VNC=true
21 | modes=$((modes + 1))
22 | ;;
23 | -browser)
24 | BROWSER=true
25 | modes=$((modes + 1))
26 | ;;
27 | *)
28 | CUSTOM_COMMAND="${CUSTOM_COMMAND} $(build_cmd "$1")"
29 | ;;
30 | esac
31 | shift
32 | done
33 |
34 | validateInput
35 | checkLicensing
36 | checkSharedMemorySpace
37 | checkEnvironmentVariables
38 | startContainer
39 |
40 | exit
41 |
--------------------------------------------------------------------------------
/matlab/release-config/R2023a.env.hcl:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | MATLAB_RELEASE="R2023a"
4 |
5 | MATLAB_DEPS_OS="ubuntu20.04"
6 |
7 | # Using gcc-9 instead of gcc-11 as it is not available on Ubuntu 20.04
8 | GCC="gcc-9"
9 | GPP="g++-9"
10 |
11 | # Ubuntu 20.04 requires python3.8-venv when using pipx
12 | APT_ADDITIONAL_PACKAGES="python3.8-venv"
13 |
14 | # Ubuntu 20.04 has vncpasswd provided by tigervnc-common so don't need tigervnc-tools
15 | APT_ADDITIONAL_PACKAGES_VNC=""
16 |
--------------------------------------------------------------------------------
/matlab/release-config/R2023b.env.hcl:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | MATLAB_RELEASE="R2023b"
4 |
5 | MATLAB_DEPS_OS="ubuntu22.04"
6 |
7 | GCC="gcc-11"
8 | GPP="g++-11"
9 |
--------------------------------------------------------------------------------
/matlab/release-config/R2024a.env.hcl:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | MATLAB_RELEASE="R2024a"
4 |
5 | MATLAB_DEPS_OS="ubuntu22.04"
6 |
7 | GCC="gcc-12"
8 | GPP="g++-12"
9 |
--------------------------------------------------------------------------------
/matlab/release-config/R2024b.env.hcl:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 |
3 | MATLAB_RELEASE="R2024b"
4 |
5 | MATLAB_DEPS_OS="ubuntu22.04"
6 |
7 | GCC="gcc-12"
8 | GPP="g++-12"
9 |
--------------------------------------------------------------------------------
/matlab/release-config/R2025a.env.hcl:
--------------------------------------------------------------------------------
1 | # Copyright 2025 The MathWorks, Inc.
2 |
3 | MATLAB_RELEASE="R2025a"
4 |
5 | MATLAB_DEPS_OS="ubuntu24.04"
6 |
7 | GCC="gcc-12"
8 | GPP="g++-12"
9 |
--------------------------------------------------------------------------------
/network-license-manager/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 | FROM registry.access.redhat.com/ubi9/ubi:latest
3 |
4 | RUN yum update --disableplugin=subscription-manager -y \
5 | && yum install --disableplugin=subscription-manager -y unzip \
6 | && yum --disableplugin=subscription-manager clean all -y
7 |
8 | # Get license manager directly from the mathworks website
9 | ARG MATLAB_RELEASE=R2025a
10 | RUN cd /tmp && \
11 | curl https://ssd.mathworks.com/supportfiles/downloads/${MATLAB_RELEASE}/license_manager/${MATLAB_RELEASE}/daemons/glnxa64/mathworks_network_license_manager_glnxa64.zip --output mathworks_network_license_manager_glnxa64.zip && \
12 | unzip mathworks_network_license_manager_glnxa64.zip -d /nlm/ && \
13 | rm -rf mathworks_network_license_manager_glnxa64.zip
14 |
15 | RUN ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
16 |
17 | # Add "lmgr" user in the lmadmin group
18 | RUN groupadd lmadmin && \
19 | adduser --gid lmadmin --shell /bin/bash --comment "" lmgr
20 |
21 | COPY ./docker-entrypoint.sh /docker-entrypoint.sh
22 | ENTRYPOINT ["/docker-entrypoint.sh"]
23 |
--------------------------------------------------------------------------------
/network-license-manager/README.md:
--------------------------------------------------------------------------------
1 | # Docker Container for Network License Manager
2 |
3 | This repository allows you to install and start a license server with a single command using a Docker® container image and Docker Compose file for Network License Manager.
4 |
5 | ### Requirements
6 | * Docker (with Docker Engine 18.06.0 or higher)
7 | * Linux® host
8 | * Network License File for the Linux host
9 |
10 | ## Run Network License Server Instance
11 |
12 | ### Get Sources
13 |
14 | Download this container image either by cloning or downloading this repository from GitHub®,
15 | and navigate to the `network-license-manager` folder.
16 | ```bash
17 | git clone https://github.com/mathworks-ref-arch/container-images.git
18 | cd container-images/network-license-manager
19 | ```
20 |
21 | ### Provide License File
22 |
23 | Copy your [network license file](https://www.mathworks.com/help/install/ug/network-license-files.html) to the `licenses` folder within the `network-license-manager` folder of the repository as `license.dat`. Network License Manager will use this license.
24 |
25 | For more information about license files, see [support article](https://www.mathworks.com/matlabcentral/answers/116637-what-are-the-differences-between-the-license-lic-license-dat-network-lic-and-license_info-xml-lic#answer_124791).
26 |
27 | ### Run Container Image
28 |
29 | Run the container image with Docker Compose. The container image must be run on the machine for which the network license file is activated.
30 | ```bash
31 | docker compose up
32 | ```
33 |
34 | This command starts the license server. Logs are written to the terminal as well as to the `logs` folder within the `network-license-manager` folder of the repository.
35 |
36 | To stop the container, either press `Ctrl+C` or use this command.
37 | ```bash
38 | docker compose down
39 | ```
40 |
41 | #### Network License Manager Port Lifetime
42 |
43 | If you stop and restart the container within a short time (one to two minutes), you may see the following error from the Network License Manager: "Failed to open the TCP port number in the license". This occurs because the operating system may keep the required port temporarily open. To resolve this issue, wait a short time (one to two minutes) and restart the container.
44 |
45 | ## Technical Support
46 | If you require assistance or have a request for additional features or capabilities, contact [MathWorks Technical Support](https://www.mathworks.com/support/contact_us.html) with the relevant `logs`.
47 |
48 | ----
49 |
50 | Copyright 2024-2025 The MathWorks, Inc.
51 |
52 | ----
--------------------------------------------------------------------------------
/network-license-manager/compose.yaml:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | version: "3.8"
4 |
5 | services:
6 | network-license-manager:
7 | image: ghcr.io/mathworks-ref-arch/container-images/network-license-manager:latest
8 | # To build the image locally instead of using the hosted image,
9 | # comment out the "image:" line and uncomment the "build:" line.
10 | # build: .
11 | network_mode: host
12 | init: true
13 | restart: on-failure
14 | volumes:
15 | - ./licenses:/usr/local/MATLAB/licenses/:ro
16 | - ./logs:/tmp/log/mathworks
17 |
--------------------------------------------------------------------------------
/network-license-manager/docker-entrypoint.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | LOG_FILE="/tmp/log/mathworks/logs.txt"
6 | LICENSE_FILE="/usr/local/MATLAB/licenses/license.dat"
7 |
8 | lmgrdPID="" # lmgrdPID will store the lmgrd PID once started
9 |
10 | echo_and_log() {
11 | echo "$1" | tee -a "${LOG_FILE}"
12 | }
13 |
14 | shutdown_run=0
15 | _term() {
16 | if [[ $shutdown_run -eq 0 ]]; then
17 | shutdown_run=1
18 | else
19 | return
20 | fi
21 |
22 | # Only kill lmgrd if it is still running
23 | if kill -0 $lmgrdPID 2>/dev/null; then
24 | echo_and_log "Shutting down License Manager."
25 | runuser -u lmgr -- /nlm/etc/glnxa64/lmutil lmdown -q -force -c $LICENSE_FILE | tee -a $LOG_FILE &
26 | shutdown_status=$?
27 | if [ $shutdown_status -ne 0 ]; then
28 | echo_and_log "Unable to shut down License Manager."
29 | else
30 | echo_and_log "License Manager has shut down."
31 | fi
32 | # Propagate shutdown exit code in case of errors
33 | exit $shutdown_status
34 | fi
35 | }
36 |
37 | trap _term SIGTERM EXIT
38 |
39 | touch $LOG_FILE
40 | echo_and_log "Starting License Manager."
41 | chown lmgr $LOG_FILE
42 | chmod 666 $LOG_FILE
43 | runuser -u lmgr -- /nlm/etc/glnxa64/lmgrd -z -2 -p -local -c $LICENSE_FILE | tee -a $LOG_FILE &
44 | lmgrdPID=$!
45 | wait "${lmgrdPID}"
46 |
--------------------------------------------------------------------------------
/network-license-manager/licenses/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 | !README.md
4 |
--------------------------------------------------------------------------------
/network-license-manager/licenses/README.md:
--------------------------------------------------------------------------------
1 | Add your license file to this folder as `license.dat`.
2 |
3 | For more information about license files, see [support article](https://www.mathworks.com/matlabcentral/answers/116637-what-are-the-differences-between-the-license-lic-license-dat-network-lic-and-license_info-xml-lic#answer_124791).
4 |
5 | ----
6 |
7 | Copyright 2024 The MathWorks, Inc.
8 |
9 | ----
--------------------------------------------------------------------------------
/network-license-manager/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/network-license-manager/tests/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__
2 | logs/*
3 | licenses/*
4 | **/license.dat
5 | tmp/**
--------------------------------------------------------------------------------
/network-license-manager/tests/requirements.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | docker
4 | pytest-testinfra
5 |
--------------------------------------------------------------------------------
/network-license-manager/tests/setup_gen_licfile.sh:
--------------------------------------------------------------------------------
1 | # !/bin/bash
2 |
3 | # MATLAB_LICENSE_FILE is set by the action
4 |
5 | # write the license file
6 | mkdir -p $(dirname $LICENSE_FILE_PATH)
7 | echo "# BEGIN--------------BEGIN--------------BEGIN" > $LICENSE_FILE_PATH
8 | echo "SERVER ${HOSTNAME} ${MAC_ADDRESS//:} ${PORT}" >> $LICENSE_FILE_PATH
9 | echo "DAEMON MLM ./MLM PORT=27100" >> $LICENSE_FILE_PATH
10 | echo "${MATLAB_LICENSE_FILE}" >> $LICENSE_FILE_PATH
11 | echo "# END-----------------END-----------------END" >> $LICENSE_FILE_PATH
12 |
--------------------------------------------------------------------------------
/network-license-manager/tests/test_nlm_image.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | import os
4 | import docker
5 | import testinfra
6 | import unittest
7 | import utils
8 |
9 |
10 | IMAGE_NAME = os.getenv("IMAGE_NAME")
11 |
12 |
13 | class TestNLMImage(unittest.TestCase):
14 | """Test the network license manager image without starting the lmgrd process"""
15 |
16 | @classmethod
17 | def setUpClass(cls):
18 | client = docker.from_env()
19 | cls.addClassCleanup(lambda: client.close())
20 |
21 | container = client.containers.run(
22 | image=IMAGE_NAME,
23 | entrypoint="/bin/bash",
24 | stdin_open=True,
25 | detach=True,
26 | )
27 | cls.addClassCleanup(lambda: container.remove(force=True))
28 |
29 | utils.wait_for_container_status(client, container.id, "running")
30 | cls.host = testinfra.get_host("docker://" + container.id)
31 |
32 | def test_tmp_dir_exists(self):
33 | "Test that the /usr/tmp directory exists. It is required by the network license manager"
34 | self.assertTrue(self.host.file("/usr/tmp").exists)
35 |
36 | def test_binaries_are_installed(self):
37 | """Test that the executables called in the entrypoint are actually installed"""
38 | expected_binpaths = ["/nlm/etc/glnxa64/lmgrd", "/nlm/etc/glnxa64/lmutil"]
39 | for binpath in expected_binpaths:
40 | with self.subTest(binary=binpath):
41 | self.assertTrue(self.host.file(binpath).is_executable)
42 |
43 | def test_user(self):
44 | """Test that the expected username exists and it belongs to the expected group"""
45 | expected_user = "lmgr"
46 | expected_group = "lmadmin"
47 | self.assertTrue(self.host.user(expected_user).exists)
48 | self.assertIn(expected_group, self.host.user(expected_user).groups)
49 |
50 | def test_archives_are_deleted(self):
51 | """Test that the archive files downloaded while building the image are removed"""
52 | find = self.host.run("find -name *.zip")
53 | self.assertEqual(0, find.exit_status, find.stderr)
54 | self.assertEqual("", find.stdout)
55 |
56 |
57 | if __name__ == "__main__":
58 | unittest.main()
59 |
--------------------------------------------------------------------------------
/network-license-manager/tests/utils.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | import re
4 | import time
5 |
6 |
7 | def wait_for_logs(container, msg, timeout=60):
8 | logs = container.logs(stream=True)
9 | start = time.time()
10 | while time.time() - start < timeout:
11 | if re.search(msg, next(logs).decode()):
12 | logs.close()
13 | return
14 | else:
15 | logs.close()
16 | raise TimeoutError(f"Timeout reached while waiting for message '{msg}'")
17 |
18 |
19 | def wait_for(bool_fnc, timeout=60, interval=0.3):
20 | start = time.time()
21 | while time.time() - start <= timeout and not bool_fnc():
22 | time.sleep(interval)
23 | if time.time() - start > timeout:
24 | raise TimeoutError(
25 | f"The condition {bool_fnc.__name__} is still false after {timeout} seconds"
26 | )
27 |
28 |
29 | def wait_for_container_status(client, id, status, timeout=30):
30 | """Wait until the container is in a desired state"""
31 |
32 | def container_in_desired_state():
33 | return client.containers.get(id).status == status
34 |
35 | try:
36 | wait_for(container_in_desired_state, timeout)
37 | except TimeoutError:
38 | raise RuntimeError(f"The container {id} is {client.containers.get(id).status}.")
39 |
--------------------------------------------------------------------------------
/polyspace-deps/README.md:
--------------------------------------------------------------------------------
1 | # Polyspace Dependencies
2 |
3 | > :warning: **Starting in R2024a, the `polyspace-deps` repository will no longer receive updates or support.**
4 | >
5 | > To streamline the container workflows for Polyspace products, the libraries and other dependencies required to run Polyspace products in containers are now included in the `Dockerfile` of the corresponding products. To continue using Polyspace products in Docker containers, see:
6 | >
7 | >* [Polyspace Bug Finder and Code Prover Server](https://github.com/mathworks-ref-arch/polyspace-bug-finder-server-dockerfile)
8 | >* [Polyspace Test](https://github.com/mathworks-ref-arch/polyspace-test-dockerfile)
9 |
10 | This repository includes the libraries and other dependencies required to run the Polyspace Bug Finder™ Server™ and Polyspace Code Prover™ Server™ MathWorks® products. These dependencies are installed during the build of a Polyspace Bug Finder/Code Prover Server container image.
11 |
12 | To build and run a Polyspace Bug Finder Server and Polyspace Code Prover Server container, follow [these instructions](https://github.com/mathworks-ref-arch/polyspace-bug-finder-server-dockerfile) .
13 |
14 | > **Note: The Polyspace dependencies do not include the Polyspace Bug Finder Server and Polyspace Code Prover Server products.**
15 |
16 |
17 | ## Supported Tags
18 |
19 | | Tags | Polyspace Version | Operating System | Base Image | Usage Notes |
20 | | ------------ |:--------------:| ---------------- |----------- | ----------- |
21 | |[`latest`, `r2023b`, `r2023b-ubuntu22.04`, `R2023b`, `R2023b-ubuntu22.04`](https://github.com/mathworks-ref-arch/container-images/blob/main/polyspace-deps/r2023b/ubuntu22.04/Dockerfile) | R2023b | Ubuntu 22.04 | ubuntu:22.04 | |
22 | |[`r2023a`, `r2023a-ubuntu20.04`, `R2023a`, `R2023a-ubuntu20.04`](https://github.com/mathworks-ref-arch/container-images/blob/main/polyspace-deps/r2023a/ubuntu20.04/Dockerfile) | R2023a | Ubuntu 20.04 | ubuntu:20.04 | |
23 | |[`r2022b`, `r2022b-ubuntu20.04`, `R2022b`, `R2022b-ubuntu20.04`](https://github.com/mathworks-ref-arch/container-images/blob/main/polyspace-deps/r2022b/ubuntu20.04/Dockerfile) | R2022b | Ubuntu 20.04 | ubuntu:20.04 | |
24 |
25 | ## License
26 | The license for this container is available [here](https://github.com/mathworks-ref-arch/container-images/blob/main/LICENSE.md).
27 |
28 | ## Security Reporting
29 | To report suspected security issues, follow [these instructions](https://github.com/mathworks-ref-arch/container-images/blob/main/SECURITY.md).
30 |
31 | ## Technical Support
32 | If you require assistance or have a request for additional features or capabilities, please contact [MathWorks Technical Support](https://www.mathworks.com/support/contact_us.html).
33 |
34 | ----
35 |
36 | Copyright 2022-2024 The MathWorks, Inc.
37 |
38 | ----
--------------------------------------------------------------------------------
/polyspace-deps/r2022b/ubuntu20.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2022 The MathWorks, Inc.
2 | FROM ubuntu:20.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC"
7 |
8 | COPY base-dependencies.txt /tmp/base-dependencies.txt
9 |
10 | RUN apt-get update && \
11 | apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` && \
12 | apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
13 |
14 |
--------------------------------------------------------------------------------
/polyspace-deps/r2022b/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libatk-bridge2.0-0
4 | libatk1.0-0
5 | libatspi2.0-0
6 | libc6
7 | libcairo-gobject2
8 | libcairo2
9 | libcrypt1
10 | libcups2
11 | libdbus-1-3
12 | libdrm2
13 | libfontconfig1
14 | libgbm1
15 | libgdk-pixbuf2.0-0
16 | libglib2.0-0
17 | libgstreamer-plugins-base1.0-0
18 | libgstreamer1.0-0
19 | libgtk-3-0
20 | libnspr4
21 | libnss3
22 | libopencv-core4.2
23 | libpam0g
24 | libpango-1.0-0
25 | libpangocairo-1.0-0
26 | libpangoft2-1.0-0
27 | libsndfile1
28 | libuuid1
29 | libx11-6
30 | libx11-xcb1
31 | libxcb-dri3-0
32 | libxcb1
33 | libxcomposite1
34 | libxcursor1
35 | libxdamage1
36 | libxext6
37 | libxfixes3
38 | libxft2
39 | libxi6
40 | libxinerama1
41 | libxrandr2
42 | libxrender1
43 | libxt6
44 | libxtst6
45 | libxxf86vm1
46 | zlib1g
47 | locales
48 | locales-all
49 | libgl1
50 |
--------------------------------------------------------------------------------
/polyspace-deps/r2023a/ubuntu20.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM ubuntu:20.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC"
7 |
8 | COPY base-dependencies.txt /tmp/base-dependencies.txt
9 |
10 | RUN apt-get update && \
11 | apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` && \
12 | apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
13 |
14 |
--------------------------------------------------------------------------------
/polyspace-deps/r2023a/ubuntu20.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libatk-bridge2.0-0
4 | libatk1.0-0
5 | libatspi2.0-0
6 | libc6
7 | libcairo-gobject2
8 | libcairo2
9 | libcrypt1
10 | libcups2
11 | libdbus-1-3
12 | libdrm2
13 | libfontconfig1
14 | libgbm1
15 | libgdk-pixbuf2.0-0
16 | libglib2.0-0
17 | libgstreamer-plugins-base1.0-0
18 | libgstreamer1.0-0
19 | libgtk-3-0
20 | libnspr4
21 | libnss3
22 | libopencv-core4.2
23 | libpam0g
24 | libpango-1.0-0
25 | libpangocairo-1.0-0
26 | libpangoft2-1.0-0
27 | libsndfile1
28 | libuuid1
29 | libx11-6
30 | libx11-xcb1
31 | libxcb-dri3-0
32 | libxcb1
33 | libxcomposite1
34 | libxcursor1
35 | libxdamage1
36 | libxext6
37 | libxfixes3
38 | libxft2
39 | libxi6
40 | libxinerama1
41 | libxrandr2
42 | libxrender1
43 | libxt6
44 | libxtst6
45 | libxxf86vm1
46 | zlib1g
47 | locales
48 | locales-all
49 | libgl1
50 |
--------------------------------------------------------------------------------
/polyspace-deps/r2023b/ubuntu22.04/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 | FROM ubuntu:22.04
3 |
4 | LABEL maintainer="The MathWorks, Inc."
5 |
6 | ENV DEBIAN_FRONTEND="noninteractive" TZ="Etc/UTC"
7 |
8 | COPY base-dependencies.txt /tmp/base-dependencies.txt
9 |
10 | RUN apt-get update && \
11 | apt-get install --no-install-recommends -y `cat /tmp/base-dependencies.txt` && \
12 | apt-get clean && apt-get -y autoremove && rm -rf /var/lib/apt/lists/*
13 |
14 |
--------------------------------------------------------------------------------
/polyspace-deps/r2023b/ubuntu22.04/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | ca-certificates
2 | libasound2
3 | libc6
4 | libcairo-gobject2
5 | libcairo2
6 | libcrypt1
7 | libcups2
8 | libdrm2
9 | libgbm1
10 | libgdk-pixbuf-2.0-0
11 | libglib2.0-0
12 | libgstreamer-plugins-base1.0-0
13 | libgstreamer1.0-0
14 | libgtk-3-0
15 | libice6
16 | libnspr4
17 | libnss3
18 | libpam0g
19 | libpango-1.0-0
20 | libpangocairo-1.0-0
21 | libpangoft2-1.0-0
22 | libsndfile1
23 | libuuid1
24 | libwayland-client0
25 | libxcomposite1
26 | libxcursor1
27 | libxdamage1
28 | libxfixes3
29 | libxft2
30 | libxinerama1
31 | libxrandr2
32 | libxt6
33 | libxtst6
34 | libxxf86vm1
35 | zlib1g
36 | locales
37 | locales-all
38 | libgl1
39 |
--------------------------------------------------------------------------------
/tests/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__
2 | logs/*
3 | licenses/*
4 | **/license.dat
5 | tmp/**
6 | .venv/**
7 |
--------------------------------------------------------------------------------
/tests/matlab-deps/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__
2 | .vscode/
--------------------------------------------------------------------------------
/tests/matlab-deps/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/tests/matlab-deps/__init__.py
--------------------------------------------------------------------------------
/tests/matlab-deps/test_ubi8.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubi8 Docker images."""
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import importlib
7 |
8 | test_ubi = importlib.import_module("matlab-deps.utils.test_ubi")
9 | PLATFORM = "ubi8"
10 |
11 |
12 | class TestUbi8(test_ubi.TestUbi):
13 | def setUp(self):
14 | """Skip this test class unless the platform is 'ubi8'"""
15 | if not PLATFORM in self.platform:
16 | self.skipTest(
17 | f"skipping matlab-deps:{PLATFORM} test suite for {self.container.image.tags}"
18 | )
19 |
20 |
21 | ######################################################################
22 |
23 | if __name__ == "__main__":
24 | unittest.main()
25 |
--------------------------------------------------------------------------------
/tests/matlab-deps/test_ubi9.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubi9 Docker images."""
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import importlib
7 |
8 | test_ubi = importlib.import_module("matlab-deps.utils.test_ubi")
9 | PLATFORM = "ubi9"
10 |
11 |
12 | class TestUbi9(test_ubi.TestUbi):
13 | def setUp(self):
14 | """Skip this test class unless the platform is 'ubi9'"""
15 | if not PLATFORM in self.platform:
16 | self.skipTest(
17 | f"skipping matlab-deps:{PLATFORM} test suite for {self.container.image.tags}"
18 | )
19 |
20 |
21 | ######################################################################
22 |
23 | if __name__ == "__main__":
24 | unittest.main()
25 |
--------------------------------------------------------------------------------
/tests/matlab-deps/test_ubuntu1804.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubuntu18.04 Docker images."""
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import importlib
7 |
8 | test_ubuntu = importlib.import_module("matlab-deps.utils.test_ubuntu")
9 | PLATFORM = "ubuntu18.04"
10 |
11 |
12 | class TestUbuntu1804(test_ubuntu.TestUbuntu):
13 | def setUp(self):
14 | """Skip this test class unless the platform is 'ubuntu18.04'"""
15 | if not PLATFORM in self.platform:
16 | self.skipTest(
17 | f"skipping matlab-deps:{PLATFORM} test suite for {self.container.image.tags}"
18 | )
19 |
20 |
21 | ######################################################################
22 |
23 | if __name__ == "__main__":
24 | unittest.main()
25 |
--------------------------------------------------------------------------------
/tests/matlab-deps/test_ubuntu2004.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubuntu20.04 Docker images."""
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import importlib
7 |
8 | test_ubuntu = importlib.import_module("matlab-deps.utils.test_ubuntu")
9 | PLATFORM = "ubuntu20.04"
10 |
11 |
12 | class TestUbuntu2004(test_ubuntu.TestUbuntu):
13 | def setUp(self):
14 | """Skip this test class unless the platform is 'ubuntu20.04'"""
15 | if not PLATFORM in self.platform:
16 | self.skipTest(
17 | f"skipping matlab-deps:{PLATFORM} test suite for {self.container.image.tags}"
18 | )
19 |
20 | def test_glibc_fix_packages_are_installed(self):
21 | """test that the packages required for the glibc fix are installed"""
22 | releases_to_skip = ["r2020b", "r2021a"]
23 | if self.release.lower() in releases_to_skip:
24 | self.skipTest(
25 | f"The glibc fix is not required for these MATLAB releases {self.release}"
26 | )
27 |
28 | packages = ["libcrypt-dev", "linux-libc-dev"]
29 | for pkg in packages:
30 | with self.subTest(package_name=pkg):
31 | self.assertTrue(self.host.package(pkg).is_installed)
32 |
33 |
34 | ######################################################################
35 |
36 | if __name__ == "__main__":
37 | unittest.main()
38 |
--------------------------------------------------------------------------------
/tests/matlab-deps/test_ubuntu2204.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubuntu22.04 Docker images."""
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import importlib
7 |
8 | test_ubuntu = importlib.import_module("matlab-deps.utils.test_ubuntu")
9 |
10 |
11 | PLATFORM = "ubuntu22.04"
12 |
13 |
14 | class TestUbuntu2204(test_ubuntu.TestUbuntu):
15 | def setUp(self):
16 | """Skip this test class unless the platform is 'ubuntu22.04'"""
17 | if not PLATFORM in self.platform:
18 | self.skipTest(
19 | f"skipping matlab-deps:{PLATFORM} test suite for {self.container.image.tags}"
20 | )
21 |
22 |
23 | ######################################################################
24 |
25 | if __name__ == "__main__":
26 | unittest.main()
27 |
--------------------------------------------------------------------------------
/tests/matlab-deps/test_ubuntu2404.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubuntu24.04 Docker images."""
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import importlib
7 |
8 | test_ubuntu = importlib.import_module("matlab-deps.utils.test_ubuntu")
9 |
10 |
11 | PLATFORM = "ubuntu24.04"
12 |
13 |
14 | class TestUbuntu2404(test_ubuntu.TestUbuntu):
15 | def setUp(self):
16 | """Skip this test class unless the platform is 'ubuntu24.04'"""
17 | if not PLATFORM in self.platform:
18 | self.skipTest(
19 | f"skipping matlab-deps:{PLATFORM} test suite for {self.container.image.tags}"
20 | )
21 |
22 |
23 | ######################################################################
24 |
25 | if __name__ == "__main__":
26 | unittest.main()
27 |
--------------------------------------------------------------------------------
/tests/matlab-deps/utils/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/tests/matlab-deps/utils/__init__.py
--------------------------------------------------------------------------------
/tests/matlab-deps/utils/base.py:
--------------------------------------------------------------------------------
1 | """Base test class for matlab-deps Docker images."""
2 |
3 | # Copyright 2021-2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | import docker
7 | import testinfra
8 | from . import release_platform
9 | from pytools import helper
10 |
11 |
12 | class TestCase(unittest.TestCase):
13 | @classmethod
14 | def setUpClass(cls):
15 | image_name = helper.get_image_name()
16 | getter = release_platform.Getter(image_name)
17 |
18 | cls.dependencies_list = helper.parse_file_to_list(getter.deps_list_filepath)
19 | cls.release = getter.release
20 | cls.platform = getter.platform
21 | cls.client = docker.from_env()
22 | cls.container = cls.client.containers.run(
23 | image=image_name,
24 | detach=True,
25 | stdin_open=True,
26 | entrypoint="/bin/bash",
27 | )
28 | cls.host = testinfra.get_host("docker://" + cls.container.id)
29 |
30 | @classmethod
31 | def tearDownClass(cls):
32 | cls.container.stop(timeout=0)
33 | cls.container.remove()
34 | cls.client.close()
35 |
36 | ######################################################################
37 |
38 | def test_packages_present(self):
39 | """Test that the software packages listed below are installed in the container"""
40 | for name in self.dependencies_list:
41 | with self.subTest(package_name=name):
42 | self.assertTrue(self.host.package(name).is_installed)
43 |
44 | def test_absent_matlab_dir(self):
45 | """Test that matlab is not install in container"""
46 | dirlist = ["/usr/local/bin", "/usr/bin", "/opt"]
47 | for dir in dirlist:
48 | with self.subTest(dir=dir):
49 | self.assertNotIn("matlab", self.host.file(dir).listdir())
50 |
51 | def test_matlab_absent(self):
52 | """Test that the command 'matlab' does not work"""
53 | self.assertNotEqual(self.host.run("matlab").rc, 0)
54 |
55 | def test_unset_envs(self):
56 | """Test that some environment variables are not persisted in the images."""
57 | envs = ["DEBIAN_FRONTEND", "TZ"]
58 | for env in envs:
59 | with self.subTest(env=env):
60 | val = self.host.environment().get(env)
61 | self.assertIsNone(val, f"{env} was expected to be unset but got {val}")
62 |
63 |
64 | ######################################################################
65 |
66 | if __name__ == "__main__":
67 | unittest.main()
68 |
--------------------------------------------------------------------------------
/tests/matlab-deps/utils/release_platform.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | """Getter class to get platform and release info from a system-under-test (SUT) name."""
4 |
5 | from pathlib import Path
6 | import re
7 | import os
8 |
9 | _MATLAB_DEPS_ROOT_ = Path(__file__).parents[3] / "matlab-deps"
10 | DEPENDENCIES_LIST_FILENAME = "base-dependencies.txt"
11 |
12 | ubuntu_re = re.compile("ubuntu[0-9]{2}.[0-9]{2}")
13 | ubi_re = re.compile("ubi[0-9]")
14 | aws_re = re.compile("aws-batch")
15 | platform_re = re.compile(f"({ubuntu_re.pattern})|({ubi_re.pattern})|({aws_re.pattern})")
16 |
17 | release_re = re.compile("R20[0-9]{2}[ab]", re.IGNORECASE)
18 |
19 |
20 | def is_valid_release(str):
21 | match = release_re.fullmatch(str)
22 | if match:
23 | return True
24 | else:
25 | return False
26 |
27 |
28 | def get_deps_list_filepath(release, platform):
29 | return str(
30 | _MATLAB_DEPS_ROOT_ / release.lower() / platform / DEPENDENCIES_LIST_FILENAME
31 | )
32 |
33 |
34 | class Getter:
35 | def __init__(self, name) -> None:
36 | self.name = name
37 |
38 | @property
39 | def release(self):
40 | """Get the release from the image's name. If not possible, get the release from the source repo"""
41 | match = release_re.search(self.name)
42 | if match:
43 | return match.group(0)
44 | else: # by default, return the latest release available in the container-images repository
45 | release_subdirs = list(
46 | filter(
47 | is_valid_release,
48 | os.listdir(str(_MATLAB_DEPS_ROOT_)),
49 | )
50 | )
51 | release_subdirs.sort()
52 | return release_subdirs[-1]
53 |
54 | @property
55 | def platform(self):
56 | """Get the platform from the image's name. If not possible, get the platform from the source repo"""
57 | match = platform_re.search(self.name)
58 | if match:
59 | return match.group(0)
60 | else: # if there is no match, look the ubuntu version for the tested release and return the latest
61 | matlab_deps_root = str(_MATLAB_DEPS_ROOT_)
62 |
63 | ubuntu_platforms = list(
64 | filter(
65 | lambda x: ubuntu_re.fullmatch(x) is not None,
66 | os.listdir(f"{matlab_deps_root}/{self.release.lower()}"),
67 | )
68 | )
69 | ubuntu_platforms.sort()
70 | return ubuntu_platforms[-1]
71 |
72 | @property
73 | def deps_list_filepath(self):
74 | return get_deps_list_filepath(self.release, self.platform)
75 |
--------------------------------------------------------------------------------
/tests/matlab-deps/utils/test_ubi.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubi* Docker images."""
2 |
3 | # Copyright 2023-2024 The MathWorks, Inc.
4 |
5 | import unittest
6 | from . import base
7 |
8 | UBI = "ubi"
9 |
10 |
11 | class TestUbi(base.TestCase):
12 |
13 | def test_packages_are_upgraded(self):
14 | """Test that the packages installed in the container are updated to the latest version"""
15 | cmd = "yum check-update"
16 | cmd_res = self.host.run(cmd)
17 | self.assertNotEqual(
18 | cmd_res.rc,
19 | 100, # YUM/DNF exit code will be 100 when there are updates available
20 | f"The command\n\n{cmd}\n\nshowed that some packages are not up-to-date. The output is:\n\n{cmd_res.stdout}",
21 | )
22 |
23 | def test_package_manager_cache_is_clean(self):
24 | """Test that the yum/dnf cache got cleaned after installation of the packages."""
25 | for filename in self.host.file("/var/cache/dnf").listdir():
26 | fullname = "/var/cache/dnf/" + filename
27 | if self.host.file(fullname).is_file:
28 | # no .solv/.solvx files in /var/cache/dnf
29 | with self.subTest(filename=filename):
30 | self.assertNotRegex(filename, ".solv")
31 | elif self.host.file(fullname).is_directory:
32 | # var/cache/dnf/ubi-8-appstream-..../repodata is empty
33 | # var/cache/dnf/ubi-8-baseos-..../repodata is empty
34 | # var/cache/dnf/ubi-8-codeready-builder-..../repodata is empty
35 | fullname = fullname + "/repodata"
36 | with self.subTest(dirname=fullname):
37 | self.assertEqual(
38 | len(self.host.file(fullname).listdir()),
39 | 0,
40 | f"{fullname} is not empty",
41 | )
42 |
43 |
44 | ######################################################################
45 |
46 | if __name__ == "__main__":
47 | unittest.main()
48 |
--------------------------------------------------------------------------------
/tests/matlab-deps/utils/test_ubuntu.py:
--------------------------------------------------------------------------------
1 | """Test class for matlab-deps:ubuntu Docker images."""
2 |
3 | # Copyright 2023-2024 The MathWorks, Inc.
4 |
5 | import re
6 | import unittest
7 | from . import base
8 |
9 | UBUNTU = "ubuntu"
10 |
11 |
12 | class TestUbuntu(base.TestCase):
13 |
14 | def test_packages_are_upgraded(self):
15 | """Test that the packages installed in the container are updated to the latest version"""
16 | # run `apt-get -s upgrade` to check if ANY package needs to be upgraded.
17 | # Alternatives are:
18 | # - `apt-get -s install DEPENDENCIES_LIST`: which will only run on the MATLAB dependencies packages
19 | # - `apt list --upgreadeable` which does not have a stable interface
20 | cmd = "apt-get -s upgrade"
21 | cmd_res = self.host.run(cmd)
22 | self.assertTrue(cmd_res.succeeded, f"command {cmd} failed:\n{cmd_res.stderr}")
23 |
24 | installable_pkg_re = "The following packages will be installed"
25 | upgradeable_pkg_re = "The following packages will be upgraded"
26 | self.assertNotRegex(
27 | cmd_res.stdout,
28 | re.compile(f"({installable_pkg_re})|({upgradeable_pkg_re})"),
29 | f"The command\n\n{cmd}\n\nshowed that some packages are not up-to-date. The output is:\n\n{cmd_res.stdout}",
30 | )
31 |
32 | def test_package_manager_cache_is_clean(self):
33 | """Test that the apt-get cache got cleaned after installation of the packages."""
34 | self.assertSetEqual(
35 | set(self.host.file("/var/cache/apt/archives").listdir()),
36 | {"lock", "partial"},
37 | )
38 |
39 |
40 | ######################################################################
41 |
42 | if __name__ == "__main__":
43 | unittest.main()
44 |
--------------------------------------------------------------------------------
/tests/matlab/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/tests/matlab/__init__.py
--------------------------------------------------------------------------------
/tests/matlab/common_setup.sh:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | common_setup() {
4 |
5 | bats_load_library bats-support
6 | bats_load_library bats-assert
7 |
8 | #--- SET GLOBAL VARIABLES
9 | TESTDIR="$(dirname "$(realpath "${BATS_TEST_FILENAME}")")"
10 | SRCDIR="$(realpath "${TESTDIR}"/../src)"
11 |
12 | #--- SUPPORT PACKAGES, HELPER METHODS AND MOCKS
13 | for file in "${TESTDIR}"/shtools/*.sh; do
14 | if [ -f "${file}" ]; then
15 | load "${file}"
16 | fi
17 | done
18 | }
19 |
--------------------------------------------------------------------------------
/tests/matlab/matlab/AvailableProductsTest.m:
--------------------------------------------------------------------------------
1 | % Copyright 2021-2024 The MathWorks, Inc.
2 |
3 | classdef AvailableProductsTest < matlab.unittest.TestCase
4 | % AVAILABLEPRODUCTSTEST is developed for the MATLAB Docker images.
5 | % AvailableProductsTest checks that there are no extra toolboxes available in
6 | % the MATLAB Docker image distribution.
7 |
8 | methods(Test)
9 | function testOnlyMATLABisInstalled( testCase )
10 | installedAddons= matlab.addons.installedAddons();
11 | testCase.verifyEmpty(installedAddons);
12 | end % testOnlyMATLABisInstalled
13 |
14 |
15 | end % methods(Test)
16 | end % classdef
17 |
--------------------------------------------------------------------------------
/tests/matlab/matlab/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/tests/matlab/matlab/__init__.py
--------------------------------------------------------------------------------
/tests/matlab/matlab/run_AvailableProductsTest.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | """A test runner class for the AvailableProductsTest.m test file"""
4 |
5 | import re
6 | import unittest
7 | from pathlib import Path
8 |
9 | import docker
10 | from pytools import dockertool, helper
11 |
12 |
13 | class Run_AvailableProductsTest(unittest.TestCase):
14 | """A test runner class for the AvailableProductsTest.m test file"""
15 |
16 | @classmethod
17 | def setUpClass(cls) -> None:
18 | cls.client = docker.from_env()
19 | cls.image_name = helper.get_image_name()
20 | cls.client.images.get(cls.image_name)
21 |
22 | @classmethod
23 | def tearDownClass(cls) -> None:
24 | cls.client.close()
25 |
26 | def test_available_products(self):
27 | """Run the AvailableProductsTest.m MATLAB test file"""
28 | m_filename = "AvailableProductsTest.m"
29 | m_filepath = str(Path(__file__).parent.resolve() / m_filename)
30 |
31 | runner = dockertool.MATLABTestRunner(self.client, m_filepath)
32 |
33 | exit_code, logs = runner.run()
34 | self.assertNotRegex(
35 | logs, re.compile("At least one test failed", re.IGNORECASE), logs
36 | )
37 | self.assertEqual(
38 | exit_code, 0, "The Docker container exited with a non-zero status code"
39 | )
40 |
41 |
42 | if __name__ == "__main__":
43 | unittest.main()
44 |
--------------------------------------------------------------------------------
/tests/matlab/matlab/test_ddux.py:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 |
3 | """Run the tests to check for DDUX information set in the image"""
4 |
5 | import unittest
6 |
7 | from ..shared import test_ddux
8 |
9 |
10 | class TestDDUX(test_ddux.TestDDUX):
11 | """Test the DDUX information set when running the container"""
12 |
13 | def get_tag_value_pairs(self):
14 | """Override this method in subclasses to provide different tag-value pairs"""
15 | return {
16 | "MW_CONTEXT_TAGS": "MATLAB:DOCKERHUB:V1",
17 | "MHLM_CONTEXT": "MATLAB_DOCKERHUB",
18 | }
19 |
20 |
21 | ################################################################################
22 |
23 |
24 | if __name__ == "__main__":
25 | unittest.main()
26 |
--------------------------------------------------------------------------------
/tests/matlab/matlab_deep_learning/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/tests/matlab/matlab_deep_learning/__init__.py
--------------------------------------------------------------------------------
/tests/matlab/matlab_deep_learning/run_DeepLearningAddonsTests.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | """Test runner for the DeepLearningAddonsTests.m test file"""
4 |
5 | import re
6 | import unittest
7 | from pathlib import Path
8 |
9 | import docker
10 | from pytools import dockertool, helper
11 |
12 |
13 | class Run_DeepLearningAddonsTests(unittest.TestCase):
14 | """A test runner class for the DeepLearningAddonsTests.m test file"""
15 |
16 | @classmethod
17 | def setUpClass(cls) -> None:
18 | cls.client = docker.from_env()
19 | cls.image_name = helper.get_image_name()
20 | cls.client.images.get(cls.image_name)
21 |
22 | @classmethod
23 | def tearDownClass(cls) -> None:
24 | cls.client.close()
25 |
26 | def test_dl_addons(self):
27 | """Run the DeepLearningAddonsTests.m MATLAB test file"""
28 | m_filename = "DeepLearningAddonsTests.m"
29 | m_filepath = str(Path(__file__).parent.resolve() / m_filename)
30 |
31 | runner = dockertool.MATLABTestRunner(self.client, m_filepath)
32 |
33 | exit_code, logs = runner.run()
34 | self.assertNotRegex(
35 | logs, re.compile("At least one test failed", re.IGNORECASE), logs
36 | )
37 | self.assertEqual(
38 | exit_code, 0, "The Docker container exited with a non-zero status code"
39 | )
40 |
41 |
42 | if __name__ == "__main__":
43 | unittest.main()
44 |
--------------------------------------------------------------------------------
/tests/matlab/matlab_deep_learning/test_ddux.py:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 |
3 | """Run the tests to check for DDUX information set in the image"""
4 |
5 | import unittest
6 |
7 | from ..shared import test_ddux
8 |
9 |
10 | class TestDDUX(test_ddux.TestDDUX):
11 | """Test the DDUX information set when running the container"""
12 |
13 | def get_tag_value_pairs(self):
14 | """Override this method in subclasses to provide different tag-value pairs"""
15 | return {
16 | "MW_CONTEXT_TAGS": "MATLAB:DEEPLEARNING:DOCKERHUB:V1",
17 | "MHLM_CONTEXT": "MATLAB_DL_DOCKERHUB",
18 | }
19 |
20 |
21 | ################################################################################
22 |
23 |
24 | if __name__ == "__main__":
25 | unittest.main()
26 |
--------------------------------------------------------------------------------
/tests/matlab/run-bats-test.sh:
--------------------------------------------------------------------------------
1 | #! /bin/sh
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | # Get the current directory
6 | REPO_ROOT=$(git rev-parse --show-toplevel)
7 |
8 | OFFERING="matlab"
9 |
10 | # Get test directory
11 | TEST_DIR="${REPO_ROOT}/tests/${OFFERING}"
12 |
13 | # Get the source code directory
14 | BUILD_DIR="${REPO_ROOT}/${OFFERING}/build"
15 |
16 | # Run the Docker command with the resolved path
17 | docker run --rm --shm-size=512M -v "$TEST_DIR:/home/test" -v "$BUILD_DIR:/home/src" bats/bats:latest /home/test/tUtils.bats
18 |
19 | docker run --rm --shm-size=512M -v "$TEST_DIR:/home/test" -v "$BUILD_DIR:/home/src" bats/bats:latest /home/test/tRun.bats
20 |
--------------------------------------------------------------------------------
/tests/matlab/shared/Startup.m:
--------------------------------------------------------------------------------
1 | % Copyright 2022-2024 The MathWorks, Inc.
2 |
3 | classdef Startup < matlab.unittest.TestCase
4 | % STARTUP is developed for the MATLAB Docker images.
5 | % Startup checks that the startup.m script is functioning correctly.
6 | % It checks that the environment variables for the proxy host, port,
7 | % username and password are correctly set in MATLAB Docker image container
8 | % when specified using the docker -e command.
9 |
10 | properties
11 | WebSettings;
12 | end
13 |
14 | methods (TestMethodSetup)
15 |
16 | function getWebSettings(testCase)
17 | s = settings;
18 | testCase.WebSettings = s.matlab.web;
19 | end
20 |
21 | end
22 |
23 | methods (Test)
24 |
25 | function testHostIsSet(testCase)
26 | expectedHost = getenv('MW_PROXY_HOST');
27 | testCase.assertNotEmpty(expectedHost);
28 | actualHost = testCase.WebSettings.ProxyHost.ActiveValue;
29 | testCase.verifyEqual(expectedHost, actualHost)
30 | end
31 |
32 | function testPortIsSet(testCase)
33 | expectedPort = getenv('MW_PROXY_PORT');
34 | testCase.assertNotEmpty(expectedPort);
35 | actualPort = testCase.WebSettings.ProxyPort.ActiveValue;
36 | testCase.verifyEqual(expectedPort, actualPort);
37 | end
38 |
39 | function testProxyUsernameIsSet(testCase)
40 | expectedUserName = getenv('MW_PROXY_USERNAME');
41 | testCase.assertNotEmpty(expectedUserName);
42 | actualUserName = testCase.WebSettings.ProxyUsername.ActiveValue;
43 | testCase.verifyEqual(expectedUserName, actualUserName);
44 | end
45 |
46 | function testProxyPasswordIsSet(testCase)
47 | expectedPassword = getenv('MW_PROXY_PASSWORD');
48 | testCase.assertNotEmpty(expectedPassword);
49 | actualPassword = testCase.WebSettings.ProxyPassword.ActiveValue;
50 | testCase.verifyEqual(expectedPassword, actualPassword);
51 | end
52 |
53 | end
54 |
55 | end
56 |
--------------------------------------------------------------------------------
/tests/matlab/shared/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/mathworks-ref-arch/container-images/8aaadcfba6c9ec437294203022825ec2e8e7817e/tests/matlab/shared/__init__.py
--------------------------------------------------------------------------------
/tests/matlab/shared/run_startup.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | """Test runner for the Startup.m test file"""
4 |
5 | import re
6 | import unittest
7 | from pathlib import Path
8 |
9 | import docker
10 | from pytools import dockertool, helper
11 |
12 |
13 | class Run_Startup_Test(unittest.TestCase):
14 | """A test runner class for the Startup.m test file"""
15 |
16 | @classmethod
17 | def setUpClass(cls) -> None:
18 | cls.client = docker.from_env()
19 | cls.image_name = helper.get_image_name()
20 | cls.client.images.get(cls.image_name)
21 |
22 | @classmethod
23 | def tearDownClass(cls) -> None:
24 | cls.client.close()
25 |
26 | def test_startup(self):
27 | m_filename = "Startup.m"
28 | m_filepath = str(Path(__file__).parent.resolve() / m_filename)
29 |
30 | runner = dockertool.MATLABTestRunner(self.client, m_filepath)
31 | runner.set_env(
32 | {
33 | "MW_PROXY_PORT": 3128,
34 | "MW_PROXY_HOST": "proxy",
35 | "MW_PROXY_USERNAME": "testUserName",
36 | "MW_PROXY_PASSWORD": "testPassword",
37 | }
38 | )
39 | exit_code, logs = runner.run()
40 | self.assertNotRegex(
41 | logs, re.compile("At least one test failed", re.IGNORECASE), logs
42 | )
43 | self.assertEqual(
44 | exit_code, 0, "The Docker container exited with a non-zero status code"
45 | )
46 |
47 |
48 | if __name__ == "__main__":
49 | unittest.main()
50 |
--------------------------------------------------------------------------------
/tests/matlab/shared/test_ddux.py:
--------------------------------------------------------------------------------
1 | # Copyright 2021-2024 The MathWorks, Inc.
2 |
3 | """Run the tests to check for DDUX information set in the image"""
4 |
5 | import unittest
6 |
7 | import docker
8 | import testinfra
9 | from pytools import helper
10 |
11 |
12 | class TestDDUX(unittest.TestCase):
13 | """Test the DDUX information set when running the container
14 |
15 | When running the container the `MW_CONTEXT_TAGS` and `MHLM_CONTEXT`
16 | environment variables should be set to identify the images deployed by
17 | MathWorks on Docker Hub.
18 |
19 | This test class is designed to be inherited from rather than used directly.
20 | """
21 |
22 | @classmethod
23 | def setUpClass(cls):
24 | """Run the container"""
25 | cls.client = docker.from_env()
26 |
27 | image_name = helper.get_image_name()
28 | cls.client.images.get(image_name)
29 |
30 | cls.container = cls.client.containers.run(
31 | image=image_name,
32 | detach=True,
33 | stdin_open=True,
34 | command="-shell",
35 | )
36 | cls.host = testinfra.get_host("docker://" + cls.container.id)
37 |
38 | @classmethod
39 | def tearDownClass(cls):
40 | """Remove the container and close client connection"""
41 | cls.container.stop()
42 | cls.container.remove()
43 | cls.client.close()
44 |
45 | ############################################################
46 |
47 | def test_ddux(self):
48 | """Test that the MW_CONTEXT_TAGS and MHLM_CONTEXT variables for DDUX are
49 | correctly set"""
50 | for tag, value in self.get_tag_value_pairs().items():
51 | with self.subTest(tag=tag):
52 | mw_context_tags = self.host.environment().get(tag, "unset_variable")
53 | self.assertEqual(value, mw_context_tags)
54 |
55 | ############################################################
56 |
57 | def get_tag_value_pairs(self):
58 | """Override this method in subclasses to provide different tag-value pairs"""
59 | raise NotImplementedError
60 |
--------------------------------------------------------------------------------
/tests/matlab/shtools/create_file_with_content.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Copyright 2024 The MathWorks, Inc.
3 |
4 | # create_file_with_content writes the content of the second argument
5 | # to the file pointed by the first argument
6 | create_file_with_content() {
7 | mkdir -p "$(dirname "$1")"
8 | echo "$2" >"$1"
9 | }
10 |
--------------------------------------------------------------------------------
/tests/matlab/shtools/create_mock.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # Copyright 2024 The MathWorks, Inc.
3 |
4 | default_mock_path="/tmp/mocks"
5 | default_mock_symlink_path="/usr/local/sbin"
6 |
7 | create_mock() {
8 | mock=$1
9 | mocksdir=${2:-"${default_mock_path}"}
10 | mock_output="$(
11 | cat < None:
12 | self.runner = unittest.TextTestRunner()
13 | self.loader = unittest.TestLoader()
14 | self.suite = self.create_test_suite(*args)
15 |
16 | def create_test_suite(self, *args):
17 | """Create test suite and add tests to suite"""
18 | suite = unittest.TestSuite()
19 | for arg in args:
20 | suite.addTest(self.loader.loadTestsFromTestCase(arg))
21 | return suite
22 |
23 | def run(self):
24 | """Run tests and exit"""
25 | return self.runner.run(self.suite)
26 |
--------------------------------------------------------------------------------
/tests/requirements.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2022-2024 The MathWorks, Inc.
2 | pytest-testinfra
3 | docker
4 | pexpect
5 | urllib3
6 |
--------------------------------------------------------------------------------
/tests/tools/gen_license_file.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | # Copyright 2024 The MathWorks, Inc.
4 |
5 | # write the license file
6 | mkdir -p "$(dirname "${LICENSE_FILE_PATH}")"
7 | echo "${MATLAB_LICENSE_FILE}" >>"${LICENSE_FILE_PATH}"
8 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/README.md:
--------------------------------------------------------------------------------
1 | # Red Hat Universal Base Images Packages for Hardening
2 |
3 | This repository is for MathWorks® internal use and not intended for end users.
4 |
5 | ----
6 |
7 | Copyright 2023 The MathWorks, Inc.
8 |
9 | ----
10 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/almalinux-base/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE=almalinux
3 | ARG BASE_TAG=9.5
4 |
5 | FROM ${BASE_IMAGE}:${BASE_TAG}
6 |
7 | LABEL maintainer="The MathWorks, Inc."
8 |
9 | ARG LOCATION_ROOT=/tmp
10 |
11 | COPY base-dependencies.txt ${LOCATION_ROOT}
12 | ARG DNF="dnf --disableplugin subscription-manager --assumeyes"
13 | RUN ${DNF} update && \
14 | ${DNF} install $(cat ${LOCATION_ROOT}/base-dependencies.txt)
15 |
16 | RUN ${DNF} install dnf-plugins-core epel-release
17 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/almalinux-base/base-dependencies.txt:
--------------------------------------------------------------------------------
1 | libX11
2 | libXext
3 | libXrender
4 | libXt
5 | libX11-xcb
6 | libXcomposite
7 | libXcursor
8 | libXdamage
9 | libXfixes
10 | libXft
11 | libXi
12 | libXinerama
13 | libXrandr
14 | libXtst
15 | libXxf86vm
16 | cairo
17 | pango
18 | nss
19 | cups-libs
20 | gdk-pixbuf2
21 | atk
22 | libffi
23 | alsa-lib
24 | net-tools
25 | at-spi2-atk
26 | mesa-libgbm
27 | at-spi2-core
28 | wget
29 | python3
30 | initscripts
31 | java-1.8.0-openjdk
32 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/icewm/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE
3 |
4 | ARG LOCATION_ROOT=/tmp/deps
5 |
6 | FROM ${BASE_IMAGE} AS rpm-install
7 | ARG LOCATION_ROOT
8 |
9 | # Package iceWM dependencies
10 | ARG LOCATION=${LOCATION_ROOT}/icewm
11 | WORKDIR ${LOCATION}
12 | ENV DNF="dnf --disableplugin subscription-manager --assumeyes"
13 | RUN ${DNF} download icewm --resolve && \
14 | ${DNF} localinstall *.rpm && \
15 | tar --sort=name --owner=root:0 --group=root:0 --mtime='UTC 1984-12-07' -cf - *.rpm | gzip --no-name > ${LOCATION}.rpm.tar.gz && \
16 | sha256sum ${LOCATION}.rpm.tar.gz > ${LOCATION}.sha256
17 | ARG VERSION=v1.x
18 | RUN echo "${VERSION}" > ${LOCATION}.version
19 |
20 | FROM scratch AS export-stage
21 | ARG LOCATION_ROOT
22 |
23 | LABEL maintainer="The MathWorks, Inc."
24 |
25 | COPY --from=rpm-install ${LOCATION_ROOT}/*.gz /
26 | COPY --from=rpm-install ${LOCATION_ROOT}/*.sha256 /
27 | COPY --from=rpm-install ${LOCATION_ROOT}/*.version /
28 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/matlab/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2024-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE
3 |
4 | ARG MPM_DOWNLOAD_DESTINATION="/usr/local/src"
5 |
6 | ARG MATLAB_RELEASE=R2025a
7 |
8 | ARG LOCATION_ROOT=/tmp/deps
9 |
10 | FROM ${BASE_IMAGE} AS matlab-download
11 |
12 | ARG LOCATION_ROOT
13 | ARG MATLAB_RELEASE
14 | ARG MPM_DOWNLOAD_DESTINATION
15 |
16 | ARG DNF="dnf --disableplugin subscription-manager --assumeyes"
17 | RUN ${DNF} update && \
18 | ${DNF} install ca-certificates wget
19 |
20 | RUN wget -q https://www.mathworks.com/mpm/glnxa64/mpm && \
21 | chmod +x mpm && \
22 | ./mpm download \
23 | --release=${MATLAB_RELEASE} \
24 | --destination=${MPM_DOWNLOAD_DESTINATION} \
25 | --products MATLAB \
26 | && chmod +x ${MPM_DOWNLOAD_DESTINATION}/mpm/glnxa64/mpm \
27 | || (echo "MPM Download Failure. See below for more information:" && cat /tmp/mathworks_root.log && false)
28 |
29 | ARG VERSION=v1.x
30 |
31 | RUN mkdir -p ${LOCATION_ROOT} && \
32 | sha256sum ${MPM_DOWNLOAD_DESTINATION}/ProductFilesInfo.xml > ${LOCATION_ROOT}/matlab.sha256 && \
33 | echo "${VERSION}" > ${LOCATION_ROOT}/matlab.version
34 |
35 | # Move MPM and the installation files to a scratch image
36 | FROM scratch
37 |
38 | LABEL maintainer="The MathWorks, Inc."
39 |
40 | # Declare build arguments to use at the current build stage.
41 | ARG MPM_DOWNLOAD_DESTINATION
42 | ARG LOCATION_ROOT
43 |
44 | COPY --from=matlab-download ${MPM_DOWNLOAD_DESTINATION} /
45 | COPY --from=matlab-download ${LOCATION_ROOT}/*.sha256 /
46 | COPY --from=matlab-download ${LOCATION_ROOT}/*.version /
47 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/novnc/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE
3 |
4 | ARG LOCATION_ROOT=/tmp/deps
5 |
6 | FROM ${BASE_IMAGE} AS rpm-install
7 | ARG LOCATION_ROOT
8 |
9 | # Package noVNC dependencies
10 | ARG LOCATION=${LOCATION_ROOT}/novnc
11 | WORKDIR ${LOCATION}
12 | RUN echo "Install noVNC - HTML5 based VNC viewer" && \
13 | mkdir -p ${LOCATION}/utils/websockify && \
14 | wget -qO- https://github.com/novnc/noVNC/archive/v1.2.0.tar.gz | tar xz --strip 1 -C ${LOCATION} && \
15 | wget -qO- https://github.com/novnc/websockify/archive/v0.10.0.tar.gz | tar xz --strip 1 -C ${LOCATION}/utils/websockify && \
16 | chmod +x -v ${LOCATION}/utils/*.sh && \
17 | ## create index.html to forward automatically to `vnc.html`
18 | ln -s $LOCATION/vnc.html $LOCATION/index.html && \
19 | tar --sort=name --owner=root:0 --group=root:0 --mtime='UTC 1984-12-07' -cf - . | gzip --no-name > ${LOCATION}.tar.gz && \
20 | sha256sum ${LOCATION}.tar.gz > ${LOCATION}.sha256
21 | ARG VERSION=v1.x
22 | RUN echo "${VERSION}" > ${LOCATION}.version
23 |
24 | FROM scratch AS export-stage
25 | ARG LOCATION_ROOT
26 |
27 | LABEL maintainer="The MathWorks, Inc."
28 |
29 | COPY --from=rpm-install ${LOCATION_ROOT}/*.gz /
30 | COPY --from=rpm-install ${LOCATION_ROOT}/*.sha256 /
31 | COPY --from=rpm-install ${LOCATION_ROOT}/*.version /
32 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/.gitignore:
--------------------------------------------------------------------------------
1 | __pycache__
2 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/icewm/icewm_test.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 |
3 | """
4 | Module for testing the "icewm" image
5 | """
6 |
7 | from utils import basetest
8 | import unittest
9 |
10 |
11 | class IcewmTest(basetest.TestCase):
12 | """
13 | Test class to build a Docker image from the "icewm" one and test the resulting image
14 | """
15 |
16 | def test_packages_present(self):
17 | """Test that the icewm-* packages are installed"""
18 | packages = ["icewm", "icewm-data", "icewm-themes"]
19 | for name in packages:
20 | with self.subTest(packagename=name):
21 | self.assertTrue(self.host.package(name).is_installed)
22 |
23 |
24 | ##################################################################################
25 |
26 | if __name__ == "__main__":
27 | unittest.main()
28 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/matlab/matlab_test.py:
--------------------------------------------------------------------------------
1 | # Copyright 2024 The MathWorks, Inc.
2 |
3 | """
4 | Module for testing the "matlab" image
5 | """
6 |
7 | from utils import basetest
8 | import unittest
9 |
10 |
11 | class MATLABTest(basetest.TestCase):
12 | """
13 | Test class to build a Docker image from the "matlab" one and test the resulting image
14 | """
15 | dockerfile = "Dockerfile.matlab"
16 |
17 | def test_matlab_present(self):
18 | """Test that MATLAB is installed and available"""
19 | self.assertTrue(self.host.exists(command="matlab"))
20 |
21 |
22 | ##################################################################################
23 |
24 | if __name__ == "__main__":
25 | unittest.main()
26 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/novnc/novnc_test.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 |
3 | """
4 | Module for testing the "novnc" image
5 | """
6 |
7 | from utils import basetest
8 | import unittest
9 |
10 |
11 | class NoVncTest(basetest.TestCase):
12 | """
13 | Test class to build a Docker image from the "novnc" one and test the resulting image
14 | """
15 | dockerfile = "Dockerfile.novnc"
16 |
17 | def test_can_launch(self):
18 | """Test that the launch.sh executable exists"""
19 | self.assertTrue(self.host.file("/tmp/novnc/utils/launch.sh").exists)
20 |
21 |
22 | ##################################################################################
23 |
24 | if __name__ == "__main__":
25 | unittest.main()
26 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/requirements.txt:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | docker
4 | pytest-testinfra
5 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/tigervnc/tigervnc_test.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 |
3 | """
4 | Module for testing the "tigervnc" image
5 | """
6 |
7 | from utils import basetest
8 | import unittest
9 |
10 |
11 | class TigerVncTest(basetest.TestCase):
12 | """
13 | Test class to build a Docker image from the "tigervnc" one and test the resulting image
14 | """
15 |
16 | def test_packages_present(self):
17 | """Test that the tigervnc_* packages are installed"""
18 | packages = [
19 | "tigervnc-server-minimal",
20 | "tigervnc-license",
21 | ]
22 | for name in packages:
23 | with self.subTest(packagename=name):
24 | self.assertTrue(self.host.package(name).is_installed)
25 |
26 |
27 | ##################################################################################
28 |
29 | if __name__ == "__main__":
30 | unittest.main()
31 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/utils/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | ARG BASE_REGISTRY=redhat
4 | ARG BASE_IMAGE=ubi9
5 | ARG BASE_TAG=9.4
6 | ARG IMAGE_UNDER_TEST
7 |
8 | FROM ${IMAGE_UNDER_TEST} AS image-under-test
9 |
10 | # install the RPM packages contained in the $TAR_IMAGE into a redhat-ubi image
11 |
12 | FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}
13 |
14 | ARG RPM_INSTALL=/tmp
15 |
16 | COPY --from=image-under-test *.rpm.tar.gz ${RPM_INSTALL}
17 |
18 | RUN cd ${RPM_INSTALL} && \
19 | ls *.rpm.tar.gz | xargs -n 1 tar -xvzf && \
20 | dnf install -y --nodocs *.rpm --nogpgcheck && \
21 | dnf -y clean all && \
22 | rm -rf /var/cache/dnf && \
23 | rm -rf ${RPM_INSTALL}
24 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/utils/Dockerfile.matlab:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | ARG BASE_REGISTRY=redhat
4 | ARG BASE_IMAGE=ubi9
5 | ARG BASE_TAG=9.4
6 | ARG IMAGE_UNDER_TEST=matlab
7 |
8 | FROM ${IMAGE_UNDER_TEST} AS image-under-test
9 |
10 | FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}
11 |
12 | ARG MATLAB_INSTALL_LOCATION=/opt/matlab
13 |
14 | COPY --from=image-under-test / /matlab-archive
15 |
16 | RUN /matlab-archive/mpm/glnxa64/mpm install \
17 | --source=/matlab-archive/archives \
18 | --destination=${MATLAB_INSTALL_LOCATION} \
19 | --products MATLAB \
20 | || (echo "MPM Installation Failure. See below for more information:" && cat /tmp/mathworks_root.log && false) \
21 | && rm -rf /tmp/mathworks_root.log \
22 | && ln -s ${MATLAB_INSTALL_LOCATION}/bin/matlab /usr/local/bin/matlab
23 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/utils/Dockerfile.novnc:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2024 The MathWorks, Inc.
2 |
3 | ARG BASE_REGISTRY=redhat
4 | ARG BASE_IMAGE=ubi9
5 | ARG BASE_TAG=9.4
6 | ARG IMAGE_UNDER_TEST=novnc
7 |
8 | FROM ${IMAGE_UNDER_TEST} AS image-under-test
9 |
10 | FROM ${BASE_REGISTRY}/${BASE_IMAGE}:${BASE_TAG}
11 |
12 | COPY --from=image-under-test *.tar.gz /tmp
13 |
14 | RUN mkdir /tmp/novnc/ && \
15 | tar -xzf /tmp/novnc.tar.gz --directory /tmp/novnc/ --no-same-owner --no-same-permissions
16 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/utils/basetest.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 |
3 | import testinfra
4 | import docker
5 | import unittest
6 | import pathlib
7 | import os
8 |
9 |
10 | class TestCase(unittest.TestCase):
11 | """Base test class"""
12 |
13 | # default parameters (can be overridden in derived test classes)
14 | buildargs = {"IMAGE_UNDER_TEST": os.getenv("IMAGE_UNDER_TEST")}
15 | dockerfile = "Dockerfile"
16 |
17 | @classmethod
18 | def setUpClass(cls):
19 | """
20 | Build a Docker image from the Dockerfile contained in this directory.
21 | To choose which image use as a base image, set the buildargs "IMAGE_UNDER_TEST"
22 | """
23 | cls.client = docker.from_env()
24 | cls.image, _ = cls.client.images.build(
25 | path=str(pathlib.Path(__file__).parent.resolve()),
26 | buildargs=cls.buildargs,
27 | dockerfile=cls.dockerfile,
28 | rm=True,
29 | )
30 |
31 | def setUp(self):
32 | """Run the docker container. Equivalent to
33 |
34 | 'docker run --rm -i -d DOCKER_IMAGE '
35 | """
36 | self.container = self.client.containers.run(
37 | image=self.image.id, detach=True, stdin_open=True
38 | )
39 | self.host = testinfra.get_host("docker://" + self.container.id)
40 |
41 | def tearDown(self):
42 | """Stop and remove the container."""
43 | self.container.stop()
44 | self.container.remove()
45 |
46 | @classmethod
47 | def tearDownClass(cls):
48 | """Remove the image and the client."""
49 | cls.client.images.remove(cls.image.id, force=True)
50 | cls.client.close()
51 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tests/xterm/xterm_test.py:
--------------------------------------------------------------------------------
1 | # Copyright 2023 The MathWorks, Inc.
2 |
3 | """
4 | Module for testing the "xterm" image
5 | """
6 |
7 | from utils import basetest
8 | import unittest
9 |
10 |
11 | class XtermVncTest(basetest.TestCase):
12 | """
13 | Test class to build a Docker image from the "xterm" one and test the resulting image
14 | """
15 |
16 | def test_packages_present(self):
17 | """Test that the xterm-* packages are installed"""
18 | packages = [
19 | "xterm",
20 | "xterm-resize",
21 | ]
22 | for name in packages:
23 | with self.subTest(packagename=name):
24 | self.assertTrue(self.host.package(name).is_installed)
25 |
26 |
27 | ##################################################################################
28 |
29 | if __name__ == "__main__":
30 | unittest.main()
31 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/tigervnc/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE
3 |
4 | ARG LOCATION_ROOT=/tmp/deps
5 |
6 | FROM ${BASE_IMAGE} AS rpm-install
7 | ARG LOCATION_ROOT
8 |
9 | # Package tiger-vnc dependencies
10 | ARG LOCATION=${LOCATION_ROOT}/tiger-vnc
11 | WORKDIR ${LOCATION}
12 | ENV DNF="dnf --disableplugin subscription-manager --assumeyes"
13 | RUN ${DNF} download tigervnc-server-minimal --resolve && \
14 | ${DNF} localinstall *.rpm && \
15 | tar --sort=name --owner=root:0 --group=root:0 --mtime='UTC 1984-12-07' -cf - *.rpm | gzip --no-name > ${LOCATION}.rpm.tar.gz && \
16 | sha256sum ${LOCATION}.rpm.tar.gz > ${LOCATION}.sha256
17 | ARG VERSION=v1.x
18 | RUN echo "${VERSION}" > ${LOCATION}.version
19 |
20 | FROM scratch AS export-stage
21 | ARG LOCATION_ROOT
22 |
23 | LABEL maintainer="The MathWorks, Inc."
24 |
25 | COPY --from=rpm-install ${LOCATION_ROOT}/*.gz /
26 | COPY --from=rpm-install ${LOCATION_ROOT}/*.sha256 /
27 | COPY --from=rpm-install ${LOCATION_ROOT}/*.version /
28 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/workflow/extract_metadata.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # Copyright 2023 The MathWorks Inc.
4 |
5 | # This script extracts the .sha256 and .version files from a Docker image.
6 | # The files are saved to /tmp/latest.
7 |
8 | # Get script location and Docker image to extract from
9 | SCRIPTPATH=$(dirname $0)
10 | BASE_IMAGE=$1
11 |
12 | # Extract signature and version files from Docker image
13 | docker build \
14 | --build-arg BASE_IMAGE=${BASE_IMAGE} \
15 | --file ${SCRIPTPATH}/extraction.Dockerfile \
16 | --output /tmp/latest/ \
17 | ${SCRIPTPATH}
18 |
19 | # Output version
20 | VERSION=$(cat /tmp/latest/*.version)
21 | echo "${VERSION}"
22 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/workflow/extraction.Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE
3 |
4 | FROM ${BASE_IMAGE} AS base
5 |
6 | FROM scratch AS extract-stage
7 |
8 | LABEL maintainer="The MathWorks, Inc."
9 |
10 | COPY --from=base /*.sha256 /
11 | COPY --from=base /*.version /
12 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/workflow/increment_version.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | #
3 | # Copyright 2023 The MathWorks Inc.
4 |
5 | # This script increments the minor version in a version number vMAJOR.MINOR
6 |
7 | # Retrieve the input
8 | VERSION=$1
9 |
10 | # Test if the input matches the expected format
11 | if [[ "${VERSION}" =~ ^v([0-9]+).(-?[0-9]+)$ ]]; then
12 | # Extract major and minor levels
13 | MAJOR="${BASH_REMATCH[1]}"
14 | MINOR="${BASH_REMATCH[2]}"
15 |
16 | # Increment minor level
17 | echo "v${MAJOR}.$((++MINOR))"
18 |
19 | else
20 | echo ">> ${VERSION} is not a valid version (expecting vX.X)."
21 | exit 1
22 | fi
23 |
--------------------------------------------------------------------------------
/ubi-hardening-extras/xterm/Dockerfile:
--------------------------------------------------------------------------------
1 | # Copyright 2023-2025 The MathWorks, Inc.
2 | ARG BASE_IMAGE
3 |
4 | ARG LOCATION_ROOT=/tmp/deps
5 |
6 | FROM ${BASE_IMAGE} AS rpm-install
7 | ARG LOCATION_ROOT
8 |
9 | # Package xterm dependencies
10 | ARG LOCATION=${LOCATION_ROOT}/xterm
11 | WORKDIR ${LOCATION}
12 | ENV DNF="dnf --disableplugin subscription-manager --assumeyes"
13 | RUN ${DNF} download xterm --resolve && \
14 | ${DNF} localinstall *.rpm && \
15 | tar --sort=name --owner=root:0 --group=root:0 --mtime='UTC 1984-12-07' -cf - *.rpm | gzip --no-name > ${LOCATION}.rpm.tar.gz && \
16 | sha256sum ${LOCATION}.rpm.tar.gz > ${LOCATION}.sha256
17 | ARG VERSION=v1.x
18 | RUN echo "${VERSION}" > ${LOCATION}.version
19 |
20 | FROM scratch AS export-stage
21 | ARG LOCATION_ROOT
22 |
23 | LABEL maintainer="The MathWorks, Inc."
24 |
25 | COPY --from=rpm-install ${LOCATION_ROOT}/*.gz /
26 | COPY --from=rpm-install ${LOCATION_ROOT}/*.sha256 /
27 | COPY --from=rpm-install ${LOCATION_ROOT}/*.version /
28 |
--------------------------------------------------------------------------------