├── .github └── workflows │ ├── ci.yaml │ ├── ci_test.yaml │ ├── sub_description.yaml │ ├── sub_release.yaml │ └── sub_test.yaml ├── LICENSE ├── R2019a-meshlab └── Dockerfile ├── R2019a └── Dockerfile ├── R2019b-meshlab └── Dockerfile ├── R2019b └── Dockerfile ├── R2020a-meshlab └── Dockerfile ├── R2020a └── Dockerfile ├── R2020b-meshlab └── Dockerfile ├── R2020b └── Dockerfile ├── R2021a-meshlab └── Dockerfile ├── R2021a └── Dockerfile ├── R2021b-meshlab └── Dockerfile ├── R2021b └── Dockerfile ├── R2022a-meshlab └── Dockerfile ├── R2022a └── Dockerfile ├── R2022b-meshlab └── Dockerfile ├── R2022b └── Dockerfile ├── R2023a-meshlab └── Dockerfile ├── R2023a └── Dockerfile ├── R2023b-meshlab └── Dockerfile ├── R2023b └── Dockerfile ├── README.md ├── build.sh ├── generate.py ├── hooks └── build ├── latest ├── latest-meshlab └── test └── mcr_version.sh /.github/workflows/ci.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------ 3 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 4 | # All Trademarks referred to are the property of their respective owners. 5 | # ------------------------------------------------------------------------ 6 | 7 | # This is the master workflow, taken by CI of GitHub. 8 | # It (only) aims at properly organizing the sub-workflows. 9 | 10 | name: CI 11 | 12 | on: 13 | push: 14 | branches: 15 | - "master" 16 | 17 | concurrency: 18 | group: CI-${{ github.head_ref || github.run_id }} 19 | cancel-in-progress: true 20 | 21 | jobs: 22 | Description: 23 | uses: ./.github/workflows/sub_description.yaml 24 | with: 25 | DOCKERHUB_REPO: demartis/matlab-runtime 26 | secrets: inherit 27 | 28 | R2019a: 29 | uses: ./.github/workflows/sub_release.yaml 30 | secrets: inherit 31 | with: 32 | MATLAB_NAME: R2019a 33 | DOCKERHUB_REPO: demartis/matlab-runtime 34 | DOCKERHUB_TAG: R2019a 35 | DOCKER_CONTEXT: R2019a 36 | 37 | R2019a-meshlab: 38 | needs: [ R2019a ] 39 | uses: ./.github/workflows/sub_release.yaml 40 | secrets: inherit 41 | with: 42 | MATLAB_NAME: R2019a 43 | DOCKERHUB_REPO: demartis/matlab-runtime 44 | DOCKERHUB_TAG: R2019a-meshlab 45 | DOCKER_CONTEXT: R2019a-meshlab 46 | 47 | R2019b: 48 | uses: ./.github/workflows/sub_release.yaml 49 | secrets: inherit 50 | with: 51 | MATLAB_NAME: R2019b 52 | DOCKERHUB_REPO: demartis/matlab-runtime 53 | DOCKERHUB_TAG: R2019b 54 | DOCKER_CONTEXT: R2019b 55 | 56 | R2019b-meshlab: 57 | needs: [ R2019b ] 58 | uses: ./.github/workflows/sub_release.yaml 59 | secrets: inherit 60 | with: 61 | MATLAB_NAME: R2019b 62 | DOCKERHUB_REPO: demartis/matlab-runtime 63 | DOCKERHUB_TAG: R2019b-meshlab 64 | DOCKER_CONTEXT: R2019b-meshlab 65 | 66 | R2020a: 67 | uses: ./.github/workflows/sub_release.yaml 68 | secrets: inherit 69 | with: 70 | MATLAB_NAME: R2020a 71 | DOCKERHUB_REPO: demartis/matlab-runtime 72 | DOCKERHUB_TAG: R2020a 73 | DOCKER_CONTEXT: R2020a 74 | 75 | R2020a-meshlab: 76 | needs: [ R2020a ] 77 | uses: ./.github/workflows/sub_release.yaml 78 | secrets: inherit 79 | with: 80 | MATLAB_NAME: R2020a 81 | DOCKERHUB_REPO: demartis/matlab-runtime 82 | DOCKERHUB_TAG: R2020a-meshlab 83 | DOCKER_CONTEXT: R2020a-meshlab 84 | 85 | R2020b: 86 | uses: ./.github/workflows/sub_release.yaml 87 | secrets: inherit 88 | with: 89 | MATLAB_NAME: R2020b 90 | DOCKERHUB_REPO: demartis/matlab-runtime 91 | DOCKERHUB_TAG: R2020b 92 | DOCKER_CONTEXT: R2020b 93 | 94 | R2020b-meshlab: 95 | needs: [ R2020b ] 96 | uses: ./.github/workflows/sub_release.yaml 97 | secrets: inherit 98 | with: 99 | MATLAB_NAME: R2020b 100 | DOCKERHUB_REPO: demartis/matlab-runtime 101 | DOCKERHUB_TAG: R2020b-meshlab 102 | DOCKER_CONTEXT: R2020b-meshlab 103 | 104 | R2021a: 105 | uses: ./.github/workflows/sub_release.yaml 106 | secrets: inherit 107 | with: 108 | MATLAB_NAME: R2021a 109 | DOCKERHUB_REPO: demartis/matlab-runtime 110 | DOCKERHUB_TAG: R2021a 111 | DOCKER_CONTEXT: R2021a 112 | 113 | R2021a-meshlab: 114 | needs: [ R2021a ] 115 | uses: ./.github/workflows/sub_release.yaml 116 | secrets: inherit 117 | with: 118 | MATLAB_NAME: R2021a 119 | DOCKERHUB_REPO: demartis/matlab-runtime 120 | DOCKERHUB_TAG: R2021a-meshlab 121 | DOCKER_CONTEXT: R2021a-meshlab 122 | 123 | R2021b: 124 | uses: ./.github/workflows/sub_release.yaml 125 | secrets: inherit 126 | with: 127 | MATLAB_NAME: R2021b 128 | DOCKERHUB_REPO: demartis/matlab-runtime 129 | DOCKERHUB_TAG: R2021b 130 | DOCKER_CONTEXT: R2021b 131 | 132 | R2021b-meshlab: 133 | needs: [ R2021b ] 134 | uses: ./.github/workflows/sub_release.yaml 135 | secrets: inherit 136 | with: 137 | MATLAB_NAME: R2021b 138 | DOCKERHUB_REPO: demartis/matlab-runtime 139 | DOCKERHUB_TAG: R2021b-meshlab 140 | DOCKER_CONTEXT: R2021b-meshlab 141 | 142 | R2022a: 143 | uses: ./.github/workflows/sub_release.yaml 144 | secrets: inherit 145 | with: 146 | MATLAB_NAME: R2022a 147 | DOCKERHUB_REPO: demartis/matlab-runtime 148 | DOCKERHUB_TAG: R2022a 149 | DOCKER_CONTEXT: R2022a 150 | 151 | R2022a-meshlab: 152 | needs: [ R2022a ] 153 | uses: ./.github/workflows/sub_release.yaml 154 | secrets: inherit 155 | with: 156 | MATLAB_NAME: R2022a 157 | DOCKERHUB_REPO: demartis/matlab-runtime 158 | DOCKERHUB_TAG: R2022a-meshlab 159 | DOCKER_CONTEXT: R2022a-meshlab 160 | 161 | R2022b: 162 | uses: ./.github/workflows/sub_release.yaml 163 | secrets: inherit 164 | with: 165 | MATLAB_NAME: R2022b 166 | DOCKERHUB_REPO: demartis/matlab-runtime 167 | DOCKERHUB_TAG: R2022b 168 | DOCKER_CONTEXT: R2022b 169 | 170 | R2022b-meshlab: 171 | needs: [ R2022b ] 172 | uses: ./.github/workflows/sub_release.yaml 173 | secrets: inherit 174 | with: 175 | MATLAB_NAME: R2022b 176 | DOCKERHUB_REPO: demartis/matlab-runtime 177 | DOCKERHUB_TAG: R2022b-meshlab 178 | DOCKER_CONTEXT: R2022b-meshlab 179 | 180 | R2023a: 181 | uses: ./.github/workflows/sub_release.yaml 182 | secrets: inherit 183 | with: 184 | MATLAB_NAME: R2023a 185 | DOCKERHUB_REPO: demartis/matlab-runtime 186 | DOCKERHUB_TAG: R2023a 187 | DOCKER_CONTEXT: R2023a 188 | 189 | R2023a-meshlab: 190 | needs: [ R2023a ] 191 | uses: ./.github/workflows/sub_release.yaml 192 | secrets: inherit 193 | with: 194 | MATLAB_NAME: R2023a 195 | DOCKERHUB_REPO: demartis/matlab-runtime 196 | DOCKERHUB_TAG: R2023a-meshlab 197 | DOCKER_CONTEXT: R2023a-meshlab 198 | 199 | R2023b: 200 | uses: ./.github/workflows/sub_release.yaml 201 | secrets: inherit 202 | with: 203 | MATLAB_NAME: R2023b 204 | DOCKERHUB_REPO: demartis/matlab-runtime 205 | DOCKERHUB_TAG: R2023b 206 | DOCKER_CONTEXT: R2023b 207 | is_latest: true 208 | 209 | R2023b-meshlab: 210 | needs: [ R2023b ] 211 | uses: ./.github/workflows/sub_release.yaml 212 | secrets: inherit 213 | with: 214 | MATLAB_NAME: R2023b 215 | DOCKERHUB_REPO: demartis/matlab-runtime 216 | DOCKERHUB_TAG: R2023b-meshlab 217 | DOCKER_CONTEXT: R2023b-meshlab 218 | is_latest_meshlab: true 219 | -------------------------------------------------------------------------------- /.github/workflows/ci_test.yaml: -------------------------------------------------------------------------------- 1 | 2 | # ------------------------------------------------------------------------ 3 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 4 | # All Trademarks referred to are the property of their respective owners. 5 | # ------------------------------------------------------------------------ 6 | 7 | # This is the master workflow, taken by CI of GitHub. 8 | # It (only) aims at properly organizing the sub-workflows. 9 | 10 | name: CI-test 11 | 12 | on: 13 | push: 14 | branches: ["develop"] 15 | pull_request: 16 | branches: ["master"] 17 | 18 | concurrency: 19 | group: CI-test-${{ github.head_ref || github.run_id }} 20 | cancel-in-progress: true 21 | 22 | jobs: 23 | 24 | R2019a: 25 | uses: ./.github/workflows/sub_test.yaml 26 | secrets: inherit 27 | with: 28 | MATLAB_NAME: R2019a 29 | DOCKERHUB_REPO: demartis/matlab-runtime 30 | DOCKERHUB_TAG: R2019a 31 | DOCKER_CONTEXT: R2019a 32 | 33 | R2019a-meshlab: 34 | needs: [ R2019a ] 35 | uses: ./.github/workflows/sub_test.yaml 36 | secrets: inherit 37 | with: 38 | MATLAB_NAME: R2019a 39 | DOCKERHUB_REPO: demartis/matlab-runtime 40 | DOCKERHUB_TAG: R2019a-meshlab 41 | DOCKER_CONTEXT: R2019a-meshlab 42 | 43 | R2019b: 44 | uses: ./.github/workflows/sub_test.yaml 45 | secrets: inherit 46 | with: 47 | MATLAB_NAME: R2019b 48 | DOCKERHUB_REPO: demartis/matlab-runtime 49 | DOCKERHUB_TAG: R2019b 50 | DOCKER_CONTEXT: R2019b 51 | 52 | R2019b-meshlab: 53 | needs: [ R2019b ] 54 | uses: ./.github/workflows/sub_test.yaml 55 | secrets: inherit 56 | with: 57 | MATLAB_NAME: R2019b 58 | DOCKERHUB_REPO: demartis/matlab-runtime 59 | DOCKERHUB_TAG: R2019b-meshlab 60 | DOCKER_CONTEXT: R2019b-meshlab 61 | 62 | R2020a: 63 | uses: ./.github/workflows/sub_test.yaml 64 | secrets: inherit 65 | with: 66 | MATLAB_NAME: R2020a 67 | DOCKERHUB_REPO: demartis/matlab-runtime 68 | DOCKERHUB_TAG: R2020a 69 | DOCKER_CONTEXT: R2020a 70 | 71 | R2020a-meshlab: 72 | needs: [ R2020a ] 73 | uses: ./.github/workflows/sub_test.yaml 74 | secrets: inherit 75 | with: 76 | MATLAB_NAME: R2020a 77 | DOCKERHUB_REPO: demartis/matlab-runtime 78 | DOCKERHUB_TAG: R2020a-meshlab 79 | DOCKER_CONTEXT: R2020a-meshlab 80 | 81 | R2020b: 82 | uses: ./.github/workflows/sub_test.yaml 83 | secrets: inherit 84 | with: 85 | MATLAB_NAME: R2020b 86 | DOCKERHUB_REPO: demartis/matlab-runtime 87 | DOCKERHUB_TAG: R2020b 88 | DOCKER_CONTEXT: R2020b 89 | 90 | R2020b-meshlab: 91 | needs: [ R2020b ] 92 | uses: ./.github/workflows/sub_test.yaml 93 | secrets: inherit 94 | with: 95 | MATLAB_NAME: R2020b 96 | DOCKERHUB_REPO: demartis/matlab-runtime 97 | DOCKERHUB_TAG: R2020b-meshlab 98 | DOCKER_CONTEXT: R2020b-meshlab 99 | 100 | R2021a: 101 | uses: ./.github/workflows/sub_test.yaml 102 | secrets: inherit 103 | with: 104 | MATLAB_NAME: R2021a 105 | DOCKERHUB_REPO: demartis/matlab-runtime 106 | DOCKERHUB_TAG: R2021a 107 | DOCKER_CONTEXT: R2021a 108 | 109 | R2021a-meshlab: 110 | needs: [ R2021a ] 111 | uses: ./.github/workflows/sub_test.yaml 112 | secrets: inherit 113 | with: 114 | MATLAB_NAME: R2021a 115 | DOCKERHUB_REPO: demartis/matlab-runtime 116 | DOCKERHUB_TAG: R2021a-meshlab 117 | DOCKER_CONTEXT: R2021a-meshlab 118 | 119 | R2021b: 120 | uses: ./.github/workflows/sub_test.yaml 121 | secrets: inherit 122 | with: 123 | MATLAB_NAME: R2021b 124 | DOCKERHUB_REPO: demartis/matlab-runtime 125 | DOCKERHUB_TAG: R2021b 126 | DOCKER_CONTEXT: R2021b 127 | 128 | R2021b-meshlab: 129 | needs: [ R2021b ] 130 | uses: ./.github/workflows/sub_test.yaml 131 | secrets: inherit 132 | with: 133 | MATLAB_NAME: R2021b 134 | DOCKERHUB_REPO: demartis/matlab-runtime 135 | DOCKERHUB_TAG: R2021b-meshlab 136 | DOCKER_CONTEXT: R2021b-meshlab 137 | 138 | R2022a: 139 | uses: ./.github/workflows/sub_test.yaml 140 | secrets: inherit 141 | with: 142 | MATLAB_NAME: R2022a 143 | DOCKERHUB_REPO: demartis/matlab-runtime 144 | DOCKERHUB_TAG: R2022a 145 | DOCKER_CONTEXT: R2022a 146 | 147 | R2022a-meshlab: 148 | needs: [ R2022a ] 149 | uses: ./.github/workflows/sub_test.yaml 150 | secrets: inherit 151 | with: 152 | MATLAB_NAME: R2022a 153 | DOCKERHUB_REPO: demartis/matlab-runtime 154 | DOCKERHUB_TAG: R2022a-meshlab 155 | DOCKER_CONTEXT: R2022a-meshlab 156 | 157 | R2022b: 158 | uses: ./.github/workflows/sub_test.yaml 159 | secrets: inherit 160 | with: 161 | MATLAB_NAME: R2022b 162 | DOCKERHUB_REPO: demartis/matlab-runtime 163 | DOCKERHUB_TAG: R2022b 164 | DOCKER_CONTEXT: R2022b 165 | 166 | R2022b-meshlab: 167 | needs: [ R2022b ] 168 | uses: ./.github/workflows/sub_test.yaml 169 | secrets: inherit 170 | with: 171 | MATLAB_NAME: R2022b 172 | DOCKERHUB_REPO: demartis/matlab-runtime 173 | DOCKERHUB_TAG: R2022b-meshlab 174 | DOCKER_CONTEXT: R2022b-meshlab 175 | 176 | R2023a: 177 | uses: ./.github/workflows/sub_test.yaml 178 | secrets: inherit 179 | with: 180 | MATLAB_NAME: R2023a 181 | DOCKERHUB_REPO: demartis/matlab-runtime 182 | DOCKERHUB_TAG: R2023a 183 | DOCKER_CONTEXT: R2023a 184 | 185 | R2023a-meshlab: 186 | needs: [ R2023a ] 187 | uses: ./.github/workflows/sub_test.yaml 188 | secrets: inherit 189 | with: 190 | MATLAB_NAME: R2023a 191 | DOCKERHUB_REPO: demartis/matlab-runtime 192 | DOCKERHUB_TAG: R2023a-meshlab 193 | DOCKER_CONTEXT: R2023a-meshlab 194 | 195 | R2023b: 196 | uses: ./.github/workflows/sub_test.yaml 197 | secrets: inherit 198 | with: 199 | MATLAB_NAME: R2023b 200 | DOCKERHUB_REPO: demartis/matlab-runtime 201 | DOCKERHUB_TAG: R2023b 202 | DOCKER_CONTEXT: R2023b 203 | is_latest: true 204 | 205 | R2023b-meshlab: 206 | needs: [ R2023b ] 207 | uses: ./.github/workflows/sub_test.yaml 208 | secrets: inherit 209 | with: 210 | MATLAB_NAME: R2023b 211 | DOCKERHUB_REPO: demartis/matlab-runtime 212 | DOCKERHUB_TAG: R2023b-meshlab 213 | DOCKER_CONTEXT: R2023b-meshlab 214 | is_latest_meshlab: true 215 | -------------------------------------------------------------------------------- /.github/workflows/sub_description.yaml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------ 2 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 3 | # All Trademarks referred to are the property of their respective owners. 4 | # ------------------------------------------------------------------------ 5 | 6 | name: sub.description 7 | 8 | on: 9 | workflow_call: 10 | inputs: 11 | DOCKERHUB_REPO: 12 | required: true 13 | type: string 14 | secrets: 15 | DOCKERHUB_USERNAME: 16 | required: true 17 | DOCKERHUB_TOKEN: 18 | required: true 19 | 20 | jobs: 21 | push: 22 | runs-on: ubuntu-latest 23 | continue-on-error: true 24 | steps: 25 | - 26 | name: Checkout 27 | uses: actions/checkout@v4 28 | - 29 | name: Update repo description 30 | uses: peter-evans/dockerhub-description@v3 31 | with: 32 | username: ${{ secrets.DOCKERHUB_USERNAME }} 33 | password: ${{ secrets.DOCKERHUB_TOKEN }} 34 | repository: ${{ inputs.DOCKERHUB_REPO }} -------------------------------------------------------------------------------- /.github/workflows/sub_release.yaml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------ 2 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 3 | # All Trademarks referred to are the property of their respective owners. 4 | # ------------------------------------------------------------------------ 5 | 6 | name: sub.release 7 | 8 | on: 9 | workflow_call: 10 | inputs: 11 | DOCKERHUB_REPO: 12 | required: true 13 | type: string 14 | DOCKERHUB_TAG: 15 | required: true 16 | type: string 17 | DOCKER_CONTEXT: 18 | required: true 19 | type: string 20 | MATLAB_NAME: 21 | required: true 22 | type: string 23 | is_latest: 24 | required: false 25 | default: false 26 | type: boolean 27 | is_latest_meshlab: 28 | required: false 29 | default: false 30 | type: boolean 31 | secrets: 32 | DOCKERHUB_USERNAME: 33 | required: true 34 | DOCKERHUB_TOKEN: 35 | required: true 36 | 37 | env: 38 | TEST_TAG: test 39 | 40 | jobs: 41 | build: 42 | runs-on: ubuntu-latest 43 | steps: 44 | - 45 | name: Free Disk Space (Ubuntu) 46 | uses: jlumbroso/free-disk-space@main 47 | with: 48 | # this might remove tools that are actually needed, 49 | # if set to "true" but frees about 6 GB 50 | tool-cache: false 51 | 52 | # all of these default to true, but feel free to set to 53 | # "false" if necessary for your workflow 54 | android: true 55 | dotnet: true 56 | haskell: true 57 | large-packages: false # kept as removing them is time-consuming 58 | docker-images: true 59 | swap-storage: true 60 | - 61 | name: Checkout 62 | uses: actions/checkout@v4 63 | - 64 | name: Set up QEMU 65 | uses: docker/setup-qemu-action@v3 66 | - 67 | name: Set up Docker Buildx 68 | uses: docker/setup-buildx-action@v3 69 | - 70 | name: Login to Docker Hub 71 | uses: docker/login-action@v3 72 | with: 73 | username: ${{ secrets.DOCKERHUB_USERNAME }} 74 | password: ${{ secrets.DOCKERHUB_TOKEN }} 75 | - 76 | name: Create cache folders 77 | run: mkdir /tmp/.buildx-cache /tmp/.buildx-cache-new 78 | 79 | - name: Extract metadata (tags, labels) for Docker 80 | id: meta 81 | uses: docker/metadata-action@v5 82 | with: 83 | images: ${{ inputs.DOCKERHUB_REPO }} 84 | 85 | - 86 | name: Build and push [test] :${{ env.TEST_TAG }} 87 | uses: docker/build-push-action@v5 88 | with: 89 | context: ./${{ inputs.DOCKER_CONTEXT }} 90 | load: true 91 | platforms: linux/amd64 92 | cache-from: type=local,src=/tmp/.buildx-cache 93 | cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max 94 | tags: ${{ inputs.DOCKERHUB_REPO }}:${{ env.TEST_TAG }} 95 | 96 | - # Temp fix 97 | # https://github.com/docker/build-push-action/issues/252 98 | # https://github.com/moby/buildkit/issues/1896 99 | name: Move cache (Temp fix) 100 | run: | 101 | rm -rf /tmp/.buildx-cache 102 | mv /tmp/.buildx-cache-new /tmp/.buildx-cache 103 | 104 | # - 105 | # name: Image simple check [test] 106 | # run: | 107 | # docker run --rm ${{ inputs.DOCKERHUB_REPO }}:${{ env.TEST_TAG }} 108 | - 109 | name: MCR release check [test] 110 | run: | 111 | docker run -v "${{ github.workspace }}/test:/test" --rm ${{ inputs.DOCKERHUB_REPO }}:${{ env.TEST_TAG }} bash -c "/test/mcr_version.sh ${{ inputs.MATLAB_NAME }}" 112 | 113 | - 114 | name: Build and push (cached) :${{ inputs.DOCKERHUB_TAG }} ${{ inputs.is_latest == true && 'and :latest' || '' }} ${{ inputs.is_latest_meshlab == true && 'and :latest-meshlab' || '' }} 115 | uses: docker/build-push-action@v5 116 | with: 117 | context: ./${{ inputs.DOCKER_CONTEXT }} 118 | push: true 119 | platforms: linux/amd64 120 | cache-from: type=local,src=/tmp/.buildx-cache 121 | # cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max 122 | tags: | 123 | ${{ inputs.DOCKERHUB_REPO }}:${{ inputs.DOCKERHUB_TAG }} 124 | ${{ inputs.is_latest == true && format('{0}:latest', inputs.DOCKERHUB_REPO) || '' }} 125 | ${{ inputs.is_latest_meshlab == true && format('{0}:latest-meshlab', inputs.DOCKERHUB_REPO) || '' }} 126 | 127 | # - # Temp fix 128 | # # https://github.com/docker/build-push-action/issues/252 129 | # # https://github.com/moby/buildkit/issues/1896 130 | # name: Move cache (Temp fix) 131 | # run: | 132 | # rm -rf /tmp/.buildx-cache 133 | # mv /tmp/.buildx-cache-new /tmp/.buildx-cache 134 | 135 | - 136 | name: MCR release check 137 | run: | 138 | docker run -v "${{ github.workspace }}/test:/test" --rm ${{ inputs.DOCKERHUB_REPO }}:${{ inputs.DOCKERHUB_TAG }} bash -c "/test/mcr_version.sh ${{ inputs.MATLAB_NAME }}" 139 | 140 | # - 141 | # name: MCR Test (TODO) 142 | # run: | 143 | # docker run --rm ${{ inputs.DOCKERHUB_REPO }}:${{ inputs.DOCKERHUB_TAG }} echo "TODO: ADD MCR TEST" 144 | -------------------------------------------------------------------------------- /.github/workflows/sub_test.yaml: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------ 2 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 3 | # All Trademarks referred to are the property of their respective owners. 4 | # ------------------------------------------------------------------------ 5 | 6 | name: sub.release 7 | 8 | on: 9 | workflow_call: 10 | inputs: 11 | DOCKERHUB_REPO: 12 | required: true 13 | type: string 14 | DOCKERHUB_TAG: 15 | required: true 16 | type: string 17 | DOCKER_CONTEXT: 18 | required: true 19 | type: string 20 | MATLAB_NAME: 21 | required: true 22 | type: string 23 | is_latest: 24 | required: false 25 | default: false 26 | type: boolean 27 | is_latest_meshlab: 28 | required: false 29 | default: false 30 | type: boolean 31 | # secrets: 32 | # DOCKERHUB_USERNAME: 33 | # required: true 34 | # DOCKERHUB_TOKEN: 35 | # required: true 36 | 37 | env: 38 | TEST_TAG: test 39 | 40 | jobs: 41 | build: 42 | runs-on: ubuntu-latest 43 | steps: 44 | - 45 | name: Free Disk Space (Ubuntu) 46 | uses: jlumbroso/free-disk-space@main 47 | with: 48 | # this might remove tools that are actually needed, 49 | # if set to "true" but frees about 6 GB 50 | tool-cache: false 51 | 52 | # all of these default to true, but feel free to set to 53 | # "false" if necessary for your workflow 54 | android: true 55 | dotnet: true 56 | haskell: true 57 | large-packages: false # kept as removing them is time-consuming 58 | docker-images: true 59 | swap-storage: true 60 | - 61 | name: Checkout 62 | uses: actions/checkout@v4 63 | - 64 | name: Set up QEMU 65 | uses: docker/setup-qemu-action@v3 66 | - 67 | name: Set up Docker Buildx 68 | uses: docker/setup-buildx-action@v3 69 | # - 70 | # name: Login to Docker Hub 71 | # uses: docker/login-action@v3 72 | # with: 73 | # username: ${{ secrets.DOCKERHUB_USERNAME }} 74 | # password: ${{ secrets.DOCKERHUB_TOKEN }} 75 | # - 76 | # name: Create cache folders 77 | # run: mkdir /tmp/.buildx-cache /tmp/.buildx-cache-new 78 | # 79 | # - name: Extract metadata (tags, labels) for Docker 80 | # id: meta 81 | # uses: docker/metadata-action@v5 82 | # with: 83 | # images: ${{ inputs.DOCKERHUB_REPO }} 84 | 85 | - 86 | name: Build and push [test] :${{ env.TEST_TAG }} 87 | uses: docker/build-push-action@v5 88 | with: 89 | context: ./${{ inputs.DOCKER_CONTEXT }} 90 | load: true 91 | platforms: linux/amd64 92 | # cache-from: type=local,src=/tmp/.buildx-cache 93 | # cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max 94 | tags: ${{ inputs.DOCKERHUB_REPO }}:${{ env.TEST_TAG }} 95 | 96 | # - # Temp fix 97 | # # https://github.com/docker/build-push-action/issues/252 98 | # # https://github.com/moby/buildkit/issues/1896 99 | # name: Move cache (Temp fix) 100 | # run: | 101 | # rm -rf /tmp/.buildx-cache 102 | # mv /tmp/.buildx-cache-new /tmp/.buildx-cache 103 | 104 | # - 105 | # name: Image simple check [test] 106 | # run: | 107 | # docker run --rm ${{ inputs.DOCKERHUB_REPO }}:${{ env.TEST_TAG }} 108 | 109 | - 110 | name: MCR release check [test] 111 | run: | 112 | docker run -v "${{ github.workspace }}/test:/test" --rm ${{ inputs.DOCKERHUB_REPO }}:${{ env.TEST_TAG }} bash -c "/test/mcr_version.sh ${{ inputs.MATLAB_NAME }}" 113 | 114 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020-2021 Riccardo De Martis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /R2019a-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.6 (R2019a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-May-11 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2019a 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2019a/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.6 (R2019a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-May-11 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2019a/Release/9/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2019a_Update_9_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2019a_Update_9_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2019a_Update_9_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v96/runtime/glnxa64:/opt/mcr/v96/bin/glnxa64:/opt/mcr/v96/sys/os/glnxa64:/opt/mcr/v96/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v96 53 | -------------------------------------------------------------------------------- /R2019b-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.7 (R2019b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-May-11 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2019b 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2019b/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.7 (R2019b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-May-11 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2019b/Release/9/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2019b_Update_9_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2019b_Update_9_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2019b_Update_9_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v97/runtime/glnxa64:/opt/mcr/v97/bin/glnxa64:/opt/mcr/v97/sys/os/glnxa64:/opt/mcr/v97/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v97 53 | -------------------------------------------------------------------------------- /R2020a-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.8 (R2020a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-May-11 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2020a 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2020a/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.8 (R2020a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-May-11 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2020a/Release/8/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2020a_Update_8_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2020a_Update_8_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2020a_Update_8_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v98/runtime/glnxa64:/opt/mcr/v98/bin/glnxa64:/opt/mcr/v98/sys/os/glnxa64:/opt/mcr/v98/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v98 53 | -------------------------------------------------------------------------------- /R2020b-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.9 (R2020b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-May-11 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2020b 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2020b/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.9 (R2020b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-May-11 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2020b/Release/8/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2020b_Update_8_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2020b_Update_8_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2020b_Update_8_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v99/runtime/glnxa64:/opt/mcr/v99/bin/glnxa64:/opt/mcr/v99/sys/os/glnxa64:/opt/mcr/v99/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v99 53 | -------------------------------------------------------------------------------- /R2021a-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.10 (R2021a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-May-11 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2021a 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2021a/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.10 (R2021a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-May-11 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2021a/Release/8/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2021a_Update_8_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2021a_Update_8_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2021a_Update_8_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v910/runtime/glnxa64:/opt/mcr/v910/bin/glnxa64:/opt/mcr/v910/sys/os/glnxa64:/opt/mcr/v910/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v910 53 | -------------------------------------------------------------------------------- /R2021b-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.11 (R2021b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-Nov-14 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2021b 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2021b/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.11 (R2021b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-Nov-14 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2021b/Release/7/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2021b_Update_7_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2021b_Update_7_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2021b_Update_7_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v911/runtime/glnxa64:/opt/mcr/v911/bin/glnxa64:/opt/mcr/v911/sys/os/glnxa64:/opt/mcr/v911/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v911 53 | -------------------------------------------------------------------------------- /R2022a-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.12 (R2022a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2023-Nov-14 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2022a 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2022a/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.12 (R2022a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2023-Nov-14 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2022a/Release/7/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2022a_Update_7_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2022a_Update_7_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2022a_Update_7_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/v912/runtime/glnxa64:/opt/mcr/v912/bin/glnxa64:/opt/mcr/v912/sys/os/glnxa64:/opt/mcr/v912/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/v912 53 | -------------------------------------------------------------------------------- /R2022b-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.13 (R2022b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2024-Feb-19 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2022b 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2022b/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.13 (R2022b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2024-Feb-19 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2022b/Release/8/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2022b_Update_8_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2022b_Update_8_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2022b_Update_8_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/R2022b/runtime/glnxa64:/opt/mcr/R2022b/bin/glnxa64:/opt/mcr/R2022b/sys/os/glnxa64:/opt/mcr/R2022b/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/R2022b 53 | -------------------------------------------------------------------------------- /R2023a-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.14 (R2023a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2024-Feb-19 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2023a 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2023a/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v9.14 (R2023a) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2024-Feb-19 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2023a/Release/6/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2023a_Update_6_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2023a_Update_6_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2023a_Update_6_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/R2023a/runtime/glnxa64:/opt/mcr/R2023a/bin/glnxa64:/opt/mcr/R2023a/sys/os/glnxa64:/opt/mcr/R2023a/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/R2023a 53 | -------------------------------------------------------------------------------- /R2023b-meshlab/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v23.2 (R2023b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # MeshLab 18 | # the open source system for processing and editing 3D triangular meshes. 19 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 20 | # texturing and converting meshes. It offers features for processing raw data produced by 21 | # 3D digitization tools/devices and for preparing models for 3D printing. 22 | # 23 | # @author Riccardo De Martis 24 | # @creation 2024-Feb-19 25 | # @link https://github.com/demartis/matlab_runtime_docker 26 | # 27 | 28 | FROM demartis/matlab-runtime:R2023b 29 | MAINTAINER Riccardo De Martis 30 | 31 | RUN apt-get -q update && \ 32 | apt-get install -q -y --no-install-recommends \ 33 | meshlab && \ 34 | apt-get clean && \ 35 | rm -rf /var/lib/apt/lists/* 36 | 37 | -------------------------------------------------------------------------------- /R2023b/Dockerfile: -------------------------------------------------------------------------------- 1 | 2 | # MATLAB Compiler Runtime (MCR) v23.2 (R2023b) 3 | # 4 | # This docker file will configure an environment into which the Matlab compiler 5 | # runtime will be installed and in which stand-alone matlab routines (such as 6 | # those created with MATLAB's deploytool) can be executed. 7 | 8 | # MATLAB Runtime 9 | # Run compiled MATLAB applications or components without installing MATLAB 10 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 11 | # execution of compiled MATLAB applications or components. When used together, 12 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 13 | # numerical applications or software components quickly and securely. 14 | # 15 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 16 | # 17 | # @author Riccardo De Martis 18 | # @creation 2024-Feb-19 19 | # @link https://github.com/demartis/matlab_runtime_docker 20 | # 21 | 22 | FROM debian:buster-slim 23 | MAINTAINER Riccardo De Martis 24 | ENV DEBIAN_FRONTEND noninteractive 25 | 26 | RUN apt-get -q update && \ 27 | apt-get install -q -y --no-install-recommends \ 28 | xorg \ 29 | unzip \ 30 | wget \ 31 | curl && \ 32 | apt-get clean && \ 33 | rm -rf /var/lib/apt/lists/* 34 | 35 | # Download the MCR from MathWorks site an install with -mode silent 36 | RUN mkdir /mcr-install && \ 37 | mkdir /opt/mcr && \ 38 | cd /mcr-install && \ 39 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/R2023b/Release/6/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_R2023b_Update_6_glnxa64.zip && \ 40 | unzip -q MATLAB_Runtime_R2023b_Update_6_glnxa64.zip && \ 41 | rm -f MATLAB_Runtime_R2023b_Update_6_glnxa64.zip && \ 42 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \ 43 | cd / && \ 44 | rm -rf mcr-install 45 | 46 | # Configure environment variables for MCR 47 | ENV LD_LIBRARY_PATH /opt/mcr/R2023b/runtime/glnxa64:/opt/mcr/R2023b/bin/glnxa64:/opt/mcr/R2023b/sys/os/glnxa64:/opt/mcr/R2023b/extern/bin/glnxa64 48 | 49 | ENV XAPPLRESDIR /etc/X11/app-defaults 50 | 51 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 52 | ENV MCR_MASTER_PATH /opt/mcr/R2023b 53 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | MATLAB Compiler Runtime (MCR) for linux 2 | ======================================= 3 | 4 | ![Docker Automated build](https://img.shields.io/docker/cloud/automated/demartis/matlab-runtime) 5 | ![GitHub last commit](https://img.shields.io/github/last-commit/demartis/matlab_runtime_docker.svg) 6 | ![GitHub repo size in bytes](https://img.shields.io/github/repo-size/demartis/matlab_runtime_docker.svg) 7 | ![GitHub language count](https://img.shields.io/github/languages/count/demartis/matlab_runtime_docker.svg) 8 | ![GitHub](https://img.shields.io/github/license/demartis/matlab_runtime_docker) 9 | [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fdemartis%2Fmatlab_runtime_docker.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2Fdemartis%2Fmatlab_runtime_docker?ref=badge_shield) 10 | 11 | ## About 12 | Docker image to run compiled MATLAB applications or components **without installing MATLAB**. 13 | 14 | **No additional MathWorks licenses** are required. You can scale up your computational power easily and you can save large amount of money since MATLAB Compiler Runtime (MCR) doesn't require any license to run pre-compiled stand-alone routines. 15 | 16 | 17 | 18 | ``` 19 | Changelog 20 | v1.2.2 21 | - updated R2023b R2023a R2022b 22 | 23 | v1.2.1 24 | - updated R2023b 25 | 26 | v1.2 27 | - support until current R2023b 28 | - updated R2023a R2022b R2022a R2021b 29 | 30 | v1.1 31 | - new python script generator 32 | - support until current R2023a 33 | - each release supported to latest update only (e.g. R2020a supported to latest update 8) 34 | - images upgraded from Debian Stretch to Buster 35 | - switch from Docker Hub Automated Builds to GitHub Actions 36 | - automated push to Docker Hub -> https://hub.docker.com/r/demartis/matlab-runtime 37 | 38 | v1.0 39 | - 2020a Updated to release 6 (MathWorks update 27nd January 2020) 40 | - 2020a Updated to release 5 (MathWorks update 22nd November 2020) 41 | - 2019b Updated to releases 6+7 42 | - 2019a Updated to releases 8+9 43 | - 2020a Updated to release 4 (MathWorks update 22nd July 2020) 44 | - 2020a Updated to release 3 (MathWorks update 28th June 2020) 45 | - 2020a Updated to release 2 (MathWorks update 01st June 2020) 46 | - 2019a Updated to release 8 (MathWorks update 04th April 2020) 47 | - 2020a Created fist release (MathWorks update 23rd March 2020) 48 | - 2019b Updated to release 5 (MathWorks update 16th March 2020) 49 | - 2019a Updated to release 7 (MathWorks update 21st February 2020) 50 | - 2019b Updated to release 4 (MathWorks update 20th February 2020) 51 | - 2019b Updated to release 3 (MathWorks update 06th January 2020) 52 | - 2019b Updated to release 2 (MathWorks update 13th November 2019) 53 | - 2019b Created fist release (MathWorks update 01st November 2019) 54 | - 2019a Updated to release 6 (MathWorks update 06th November 2019) 55 | - 2019a Updated to release 5 (MathWorks update 05th October 2019) 56 | 57 | ``` 58 | ___ 59 | 60 | This Dockerfile will configure an environment into which the MATLAB Compiler Runtime will be installed and in which 61 | stand-alone MATLAB compiled applications can be executed (such as those created with deploytool or mcc). 62 | 63 | Respective builds including MeshLab tool are also available. 64 | 65 | ## TL;DR: 66 | 1. Compile your MCR MATLAB Standalone Application executable ("*your_exe*") ([MATLAB](https://www.mathworks.com/products/matlab.html) + [MATLAB Compiler](https://www.mathworks.com/products/compiler.html) required) 67 | 2. Run *your_exe* with: 68 | ```bash 69 | docker run --rm -ti \ 70 | -v /your_project/for_redistribution_files_only:/mcr/exe/ \ 71 | demartis/matlab-runtime:latest \ 72 | /mcr/exe/your_exe [] 73 | ``` 74 | 75 | 76 | ## Suggested tags 77 | 78 | Each tag points to respective latest release 79 | 80 | #### Standard 81 | 82 | | tag | tag | tag | tag | tag | tag | tag | tag | tag | tag | 83 | |:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:--------:|:---------:| 84 | | `latest` | | | | | | | | | | 85 | | `R2023b` | `R2023a` | `R2022b` | `R2022a` | `R2021b` | `R2021a` | `R2020b` | `R2020a` | `R2019b` | `R2019a` | 86 | 87 | #### With MeshLab 88 | 89 | | tag | tag | tag | tag | tag | tag | tag | tag | tag | tag | 90 | |:----------------:|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:|:----------------:| 91 | | `latest-meshlab` | | | | | | | | | | 92 | | `R2023b-meshlab` | `R2023a-meshlab` | `R2022b-meshlab` | `R2022a-meshlab` | `R2021b-meshlab` | `R2021a-meshlab` | `R2020b-meshlab` | `R2020a-meshlab` | `R2019b-meshlab` | `R2019a-meshlab` | 93 | 94 | 95 | ## Links 96 | [GitHub](https://github.com/demartis/matlab_runtime_docker), 97 | [Docker Hub](https://hub.docker.com/r/demartis/matlab-runtime), 98 | [Fossa](https://app.fossa.com/projects/git%2Bgithub.com%2Fdemartis%2Fmatlab_runtime_docker) 99 | 100 | 101 | ## Usage 102 | 103 | 1. Set up your environment 104 | 105 | 1. Pull (suggested method) 106 | 107 | ```bash 108 | docker pull demartis/matlab-runtime:latest 109 | ``` 110 | 111 | 2. Build (not suggested method) 112 | 113 | To build by your own the latest tag you can *git clone* this repo, then execute build.sh or run: 114 | ```bash 115 | docker build --no-cache --tag demartis/matlab-runtime `pwd`/latest 116 | ``` 117 | 118 | 2. Compile your MCR executable as Standalone Application (MATLAB Application Compiler). Follow the [MathWorks' compiler official reference](https://www.mathworks.com/products/compiler.html) 119 | 120 | 3. Run your MCR executable in docker 121 | 122 | To run a Matlab Stand-Alone executable (MSAE) you can do the following: 123 | ```bash 124 | docker run --rm -ti \ 125 | -v /your_project/for_redistribution_files_only:/mcr/exe \ 126 | demartis/matlab-runtime:latest \ 127 | /mcr/exe/your_exe [] 128 | ``` 129 | in a single line: 130 | ```bash 131 | docker run --rm -ti -v /your_project/for_redistribution_files_only:/mcr/exe demartis/matlab-runtime:latest /mcr/exe/your_exe [] 132 | ``` 133 | "your_exe" is your MATLAB linux compiled (MSAE) Matlab Stand-Alone executable. 134 | 135 | *Remember* that if your application needs files or other resources as input or generate some output, those resources must also be mounted in the container 136 | and the full path to them (in the container) must be provided. 137 | e.g.: 138 | ```bash 139 | docker run --rm -ti \ 140 | -v /your_project/for_redistribution_files_only:/mcr/exe \ 141 | ... 142 | -v /your_data/data_input:/mcr/input/ \ 143 | -v /your_data/data_output:/mcr/output/ \ 144 | ... 145 | demartis/matlab-runtime:latest \ 146 | /mcr/exe/your_exe [] 147 | ``` 148 | 149 | You can also send ENV params to your exe 150 | ```bash 151 | docker run --rm -ti \ 152 | -v /your_project/for_redistribution_files_only:/mcr/exe \ 153 | ... 154 | --env CUSTOM_VAR1="lorem ipsum 1" \ 155 | --env CUSTOM_VAR2="lorem ipsum 2" \ 156 | ... 157 | demartis/matlab-runtime:latest \ 158 | /mcr/exe/your_exe [] 159 | ``` 160 | and get them with [getenv function](https://www.mathworks.com/help/matlab/ref/getenv.html): 161 | ```Matlab 162 | % MATLAB code 163 | var1=getenv('CUSTOM_VAR1') 164 | var2=getenv('CUSTOM_VAR2') 165 | ``` 166 | 167 | ## Supported tags and respective Dockerfile links 168 | 169 | - [latest](https://github.com/demartis/matlab_runtime_docker/blob/master/latest/Dockerfile) 170 | - [R2023b](https://github.com/demartis/matlab_runtime_docker/blob/master/R2023b/Dockerfile) 171 | - [R2023a](https://github.com/demartis/matlab_runtime_docker/blob/master/R2023a/Dockerfile) 172 | - [R2022b](https://github.com/demartis/matlab_runtime_docker/blob/master/R2022b/Dockerfile) 173 | - [R2022a](https://github.com/demartis/matlab_runtime_docker/blob/master/R2022a/Dockerfile) 174 | - [R2021a](https://github.com/demartis/matlab_runtime_docker/blob/master/R2021a/Dockerfile) 175 | - [R2021b](https://github.com/demartis/matlab_runtime_docker/blob/master/R2021b/Dockerfile) 176 | - [R2020b](https://github.com/demartis/matlab_runtime_docker/blob/master/R2020b/Dockerfile) 177 | - [R2020a](https://github.com/demartis/matlab_runtime_docker/blob/master/R2020a/Dockerfile) 178 | - [R2019b](https://github.com/demartis/matlab_runtime_docker/blob/master/R2019b/Dockerfile) 179 | - [R2019a](https://github.com/demartis/matlab_runtime_docker/blob/master/R2019a/Dockerfile) 180 | 181 | ------------------------------------- 182 | 183 | - [latest-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/latest-meshlab/Dockerfile) 184 | - [R2023b-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2023b-meshlab/Dockerfile) 185 | - [R2023a-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2023a-meshlab/Dockerfile) 186 | - [R2022b-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2022b-meshlab/Dockerfile) 187 | - [R2022a-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2022a-meshlab/Dockerfile) 188 | - [R2021a-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2021a-meshlab/Dockerfile) 189 | - [R2021b-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2021b-meshlab/Dockerfile) 190 | - [R2020b-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2020b-meshlab/Dockerfile) 191 | - [R2020a-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2020a-meshlab/Dockerfile) 192 | - [R2019b-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2019b-meshlab/Dockerfile) 193 | - [R2019a-meshlab](https://github.com/demartis/matlab_runtime_docker/blob/master/R2019a-meshlab/Dockerfile) 194 | 195 | 196 | ## Included MATLAB Runtime boxes 197 | ``` 198 | - 5G Toolbox Addin 199 | - Aerospace Toolbox Addin 200 | - Audio Toolbox Addin 201 | - Automated Driving Toolbox Addin 202 | - Bioinformatics Toolbox Addin 203 | - Communications Toolbox Addin 204 | - Computer Vision Toolbox Addin 205 | - Control System Toolbox Addin 206 | - Core 207 | - Curve Fitting Toolbox Addin 208 | - Database Toolbox Addin 209 | - Datafeed Toolbox Addin 210 | - Deep Learning Toolbox Addin 211 | - DSP System Toolbox Addin 212 | - Econometrics Toolbox Addin 213 | - Financial Instruments Toolbox Addin 214 | - Financial Toolbox Addin 215 | - Fixed-Point Designer Addin 216 | - Fuzzy Logic Toolbox Addin 217 | - Global Optimization Toolbox Addin 218 | - Hadoop And Spark Addin 219 | - Image Acquisition Toolbox Addin 220 | - Image Processing Toolbox Addin 221 | - Instrument Control Toolbox Addin 222 | - Java Addin 223 | - LTE Toolbox Addin 224 | - Mapping Toolbox Addin 225 | - MATLAB Report Generator Addin 226 | - Model Predictive Control Toolbox Addin 227 | - Navigation Toolbox Addin 228 | - NET And Excel Addin 229 | - Numerics 230 | - Optimization Toolbox Addin 231 | - Parallel Computing Toolbox Addin 232 | - Partial Differential Equation Toolbox Addin 233 | - Phased Array System Toolbox Addin 234 | - Predictive Maintenance Toolbox Addin 235 | - Production Server Addin 236 | - Python 237 | - Rapid Accelerator 238 | - RF Toolbox Addin 239 | - Risk Management Toolbox Addin 240 | - Robotics System Toolbox Addin 241 | - ROS Toolbox Addin 242 | - Sensor Fusion and Tracking Toolbox Addin 243 | - Signal Processing Toolbox Addin 244 | - SimBiology Addin 245 | - Simulink 3D Animation Addin 246 | - Simulink Design Optimization Addin 247 | - Statistics and Machine Learning Toolbox Addin 248 | - System Identification Toolbox Addin 249 | - Text Analytics Toolbox Addin 250 | - Trading Toolbox Addin 251 | - Vehicle Network Toolbox Addin 252 | - Wavelet Toolbox Addin 253 | - Web Apps Addin 254 | - WLAN Toolbox Addin 255 | ``` 256 | 257 | 258 | -------------------------------------- 259 | ## Developers 260 | 261 | This project is delivered with a Python generator. 262 | All Dockerfiles, links and GitHub actions are automatically generated with the command: 263 | ```bash 264 | python generator.py 265 | ``` 266 | 267 | To add or upgrade the supported MCR versions edit the variable: 268 | `builds = [...]` and launch the generator. 269 | 270 | Editing actions and Dockerfiles by hands is not recommended. 271 | 272 | 273 | -------------------------------------- 274 | ## Support 275 | 276 | This project is released as is, use it at you own risk. Ensure your project be compatible with the MIT License and Third Party licenses. 277 | 278 | Please use [GitHub Issues](https://github.com/demartis/matlab_runtime_docker/issues) or [contact me](mailto:riccardo@demartis.it) for any question or collaboration. 279 | 280 | 281 | -------------------------------------- 282 | 283 | ## Disclaimer 284 | ``` 285 | Disclaimer: 286 | The code included in this project will not decompile, modify, reverse engineer, or create derivative works. 287 | MATLAB, MeshLab and their respective Company names are protected by Copyright Law. 288 | You acknowledge that you’re using copyrighted material. 289 | ``` 290 | See [MathWorks](https://www.mathworks.com/products/compiler/matlab-runtime.html) and [Meshlab](http://www.meshlab.net/) websites for more info. 291 | 292 | 293 | 294 | ### Licenses 295 | 296 | 297 | ``` 298 | MATLAB Compiler Runtime (MCR) 299 | MATLAB Runtime is a collection of shared libraries and code that enables the execution of 300 | compiled and packaged MATLAB applications on systems without an installed version of MATLAB. 301 | See MathWorks website: https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 302 | 303 | MeshLab 304 | MeshLab sources are distributed under the GPL 3.0 Licensing Scheme. 305 | The 'MeshLab' name is a EUIPO trademark owned by CNR. 306 | MeshLab Logos are distributed under Creative Commons License 307 | Creative Commons Attribution-Sharealike 4.0 International License and they can be freely used inside any wikimedia project. 308 | 309 | ``` 310 | 311 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker build --no-cache --tag demartis/matlab-runtime `pwd`/latest -------------------------------------------------------------------------------- /generate.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2020-2023 Riccardo De Martis 2 | # MIT License 3 | # All Trademarks referred to are the property of their respective owners. 4 | 5 | import os 6 | 7 | FILE_LATEST = 'latest' 8 | FILE_LATEST_M = 'latest-meshlab' 9 | 10 | builds = [ 11 | ['R2019a', 'v9.6', 9, '2023-May-11'], 12 | ['R2019b', 'v9.7', 9, '2023-May-11'], 13 | ['R2020a', 'v9.8', 8, '2023-May-11'], 14 | ['R2020b', 'v9.9', 8, '2023-May-11'], 15 | ['R2021a', 'v9.10', 8, '2023-May-11'], 16 | ['R2021b', 'v9.11', 7, '2023-Nov-14'], 17 | ['R2022a', 'v9.12', 7, '2023-Nov-14'], 18 | ['R2022b', 'v9.13', 8, '2024-Feb-19'], 19 | ['R2023a', 'v9.14', 6, '2024-Feb-19'], 20 | ['R2023b', 'v23.2', 6, '2024-Feb-19'], 21 | ] 22 | 23 | 24 | def gen_dockerfile(vers, named_vers, date, update_vers, ld_lib_ver): 25 | dockerfile = f""" 26 | # MATLAB Compiler Runtime (MCR) {vers} ({named_vers}) 27 | # 28 | # This docker file will configure an environment into which the Matlab compiler 29 | # runtime will be installed and in which stand-alone matlab routines (such as 30 | # those created with MATLAB's deploytool) can be executed. 31 | 32 | # MATLAB Runtime 33 | # Run compiled MATLAB applications or components without installing MATLAB 34 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 35 | # execution of compiled MATLAB applications or components. When used together, 36 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 37 | # numerical applications or software components quickly and securely. 38 | # 39 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 40 | # 41 | # @author Riccardo De Martis{date} 42 | # @link https://github.com/demartis/matlab_runtime_docker 43 | # 44 | 45 | FROM debian:buster-slim 46 | MAINTAINER Riccardo De Martis 47 | ENV DEBIAN_FRONTEND noninteractive 48 | 49 | RUN apt-get -q update && \\ 50 | apt-get install -q -y --no-install-recommends \\ 51 | xorg \\ 52 | unzip \\ 53 | wget \\ 54 | curl && \\ 55 | apt-get clean && \\ 56 | rm -rf /var/lib/apt/lists/* 57 | 58 | # Download the MCR from MathWorks site an install with -mode silent 59 | RUN mkdir /mcr-install && \\ 60 | mkdir /opt/mcr && \\ 61 | cd /mcr-install && \\ 62 | wget --no-check-certificate -q https://ssd.mathworks.com/supportfiles/downloads/{named_vers}/Release/{update_vers}/deployment_files/installer/complete/glnxa64/MATLAB_Runtime_{named_vers}_Update_{update_vers}_glnxa64.zip && \\ 63 | unzip -q MATLAB_Runtime_{named_vers}_Update_{update_vers}_glnxa64.zip && \\ 64 | rm -f MATLAB_Runtime_{named_vers}_Update_{update_vers}_glnxa64.zip && \\ 65 | ./install -destinationFolder /opt/mcr -agreeToLicense yes -mode silent && \\ 66 | cd / && \\ 67 | rm -rf mcr-install 68 | 69 | # Configure environment variables for MCR 70 | ENV LD_LIBRARY_PATH /opt/mcr/{ld_lib_ver}/runtime/glnxa64:/opt/mcr/{ld_lib_ver}/bin/glnxa64:/opt/mcr/{ld_lib_ver}/sys/os/glnxa64:/opt/mcr/{ld_lib_ver}/extern/bin/glnxa64 71 | 72 | ENV XAPPLRESDIR /etc/X11/app-defaults 73 | 74 | # Configure a variable to dump VersionInfo.xml and test the correct installation through GitHub Actions 75 | ENV MCR_MASTER_PATH /opt/mcr/{ld_lib_ver} 76 | """ 77 | return dockerfile 78 | 79 | 80 | def gen_dockerfile_meshlab(vers, named_vers, date, tag_name): 81 | dockerfile = f""" 82 | # MATLAB Compiler Runtime (MCR) {vers} ({named_vers}) 83 | # 84 | # This docker file will configure an environment into which the Matlab compiler 85 | # runtime will be installed and in which stand-alone matlab routines (such as 86 | # those created with MATLAB's deploytool) can be executed. 87 | 88 | # MATLAB Runtime 89 | # Run compiled MATLAB applications or components without installing MATLAB 90 | # The MATLAB Runtime is a standalone set of shared libraries that enables the 91 | # execution of compiled MATLAB applications or components. When used together, 92 | # MATLAB, MATLAB Compiler, and the MATLAB Runtime enable you to create and distribute 93 | # numerical applications or software components quickly and securely. 94 | # 95 | # See https://www.mathworks.com/products/compiler/matlab-runtime.html for more info. 96 | # 97 | # MeshLab 98 | # the open source system for processing and editing 3D triangular meshes. 99 | # It provides a set of tools for editing, cleaning, healing, inspecting, rendering, 100 | # texturing and converting meshes. It offers features for processing raw data produced by 101 | # 3D digitization tools/devices and for preparing models for 3D printing. 102 | # 103 | # @author Riccardo De Martis {date} 104 | # @link https://github.com/demartis/matlab_runtime_docker 105 | # 106 | 107 | FROM demartis/matlab-runtime:{tag_name} 108 | MAINTAINER Riccardo De Martis 109 | 110 | RUN apt-get -q update && \\ 111 | apt-get install -q -y --no-install-recommends \\ 112 | meshlab && \\ 113 | apt-get clean && \\ 114 | rm -rf /var/lib/apt/lists/* 115 | 116 | """ 117 | return dockerfile 118 | 119 | 120 | def safe_link(target, link): 121 | if os.path.islink(link): 122 | os.unlink(link) 123 | os.symlink(target, link) 124 | 125 | 126 | def create_folder(folder_name): 127 | if os.path.islink(folder_name): 128 | os.unlink(folder_name) 129 | 130 | if not os.path.exists(folder_name): 131 | os.mkdir(folder_name) 132 | 133 | 134 | ###################### 135 | # Generate Dockerfiles 136 | ###################### 137 | for build in builds: 138 | d_name = build[0] 139 | d_vers = build[1] 140 | 141 | # Starting from R2022b: 142 | # MATLAB® Runtime now installs to a folder whose name uses the corresponding MATLAB release name. 143 | # Previously, the default path to an installation of MATLAB Runtime included the MATLAB Runtime version, 144 | # such as v912 in R2022a. The new installer uses the MATLAB release name in the installation path, 145 | # for example, C:\Program Files\MATLAB\MATLAB Runtime\R2022b. 146 | if d_name >= "R2022b": 147 | d_libv = d_name 148 | else: 149 | d_libv = d_vers.replace('.', '') 150 | 151 | d_updv = build[2] 152 | d_date = f"\n# @creation {build[3]}" 153 | 154 | print('generating {} \t{} \tupdate {}'.format(d_name, d_vers, d_updv)) 155 | 156 | # create dockerfile 157 | dockerfile = gen_dockerfile(d_vers, d_name, d_date, d_updv, d_libv) 158 | folder_name = d_name 159 | create_folder(folder_name) 160 | with open(os.path.join(folder_name, 'Dockerfile'), 'w') as f: 161 | f.write(dockerfile) 162 | 163 | # create dockerfile with Meshlab 164 | dockerfile = gen_dockerfile_meshlab(d_vers, d_name, d_date, folder_name) 165 | folder_name += '-meshlab' 166 | create_folder(folder_name) 167 | with open(os.path.join(folder_name, 'Dockerfile'), 'w') as f: 168 | f.write(dockerfile) 169 | 170 | 171 | # link latest latest-meshlab 172 | latest_name = builds[-1][0] 173 | safe_link(latest_name, FILE_LATEST) 174 | safe_link(f"{latest_name}-meshlab", FILE_LATEST_M) 175 | 176 | ############################ 177 | # Generate GitHub CI Actions 178 | ############################ 179 | # master 180 | ############################ 181 | cb1 = '{{' 182 | cb2 = '}}' 183 | ci_action = f""" 184 | # ------------------------------------------------------------------------ 185 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 186 | # All Trademarks referred to are the property of their respective owners. 187 | # ------------------------------------------------------------------------ 188 | 189 | # This is the master workflow, taken by CI of GitHub. 190 | # It (only) aims at properly organizing the sub-workflows. 191 | 192 | name: CI 193 | 194 | on: 195 | push: 196 | branches: 197 | - "master" 198 | 199 | concurrency: 200 | group: CI-${cb1} github.head_ref || github.run_id {cb2} 201 | cancel-in-progress: true 202 | 203 | jobs: 204 | Description: 205 | uses: ./.github/workflows/sub_description.yaml 206 | with: 207 | DOCKERHUB_REPO: demartis/matlab-runtime 208 | secrets: inherit 209 | """ 210 | cr = '\n' 211 | latest_name = builds[-1][0] 212 | for build in builds: 213 | d_name = build[0] 214 | ci_action += f""" 215 | {d_name}: 216 | uses: ./.github/workflows/sub_release.yaml 217 | secrets: inherit 218 | with: 219 | MATLAB_NAME: {d_name} 220 | DOCKERHUB_REPO: demartis/matlab-runtime 221 | DOCKERHUB_TAG: {d_name} 222 | DOCKER_CONTEXT: {d_name}{str.format('{0} is_latest: true{0}', cr) if latest_name == d_name else cr} 223 | {d_name}-meshlab: 224 | needs: [ {d_name} ] 225 | uses: ./.github/workflows/sub_release.yaml 226 | secrets: inherit 227 | with: 228 | MATLAB_NAME: {d_name} 229 | DOCKERHUB_REPO: demartis/matlab-runtime 230 | DOCKERHUB_TAG: {d_name}-meshlab 231 | DOCKER_CONTEXT: {d_name}-meshlab{str.format('{0} is_latest_meshlab: true{0}', cr) if latest_name == d_name else cr}""" 232 | 233 | with open(os.path.join('.github', 'workflows', 'ci.yaml'), 'w') as f: 234 | f.write(ci_action) 235 | 236 | 237 | ############################ 238 | # develop + pull requests 239 | ############################ 240 | ci_action = f""" 241 | # ------------------------------------------------------------------------ 242 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 243 | # All Trademarks referred to are the property of their respective owners. 244 | # ------------------------------------------------------------------------ 245 | 246 | # This is the master workflow, taken by CI of GitHub. 247 | # It (only) aims at properly organizing the sub-workflows. 248 | 249 | name: CI-test 250 | 251 | on: 252 | push: 253 | branches: ["develop"] 254 | pull_request: 255 | branches: ["master"] 256 | 257 | concurrency: 258 | group: CI-test-${cb1} github.head_ref || github.run_id {cb2} 259 | cancel-in-progress: true 260 | 261 | jobs: 262 | """ 263 | cr = '\n' 264 | latest_name = builds[-1][0] 265 | for build in builds: 266 | d_name = build[0] 267 | 268 | ci_action += f""" 269 | {d_name}: 270 | uses: ./.github/workflows/sub_test.yaml 271 | secrets: inherit 272 | with: 273 | MATLAB_NAME: {d_name} 274 | DOCKERHUB_REPO: demartis/matlab-runtime 275 | DOCKERHUB_TAG: {d_name} 276 | DOCKER_CONTEXT: {d_name}{str.format('{0} is_latest: true{0}', cr) if latest_name == d_name else cr} 277 | {d_name}-meshlab: 278 | needs: [ {d_name} ] 279 | uses: ./.github/workflows/sub_test.yaml 280 | secrets: inherit 281 | with: 282 | MATLAB_NAME: {d_name} 283 | DOCKERHUB_REPO: demartis/matlab-runtime 284 | DOCKERHUB_TAG: {d_name}-meshlab 285 | DOCKER_CONTEXT: {d_name}-meshlab{str.format('{0} is_latest_meshlab: true{0}', cr) if latest_name == d_name else cr}""" 286 | 287 | with open(os.path.join('.github', 'workflows', 'ci_test.yaml'), 'w') as f: 288 | f.write(ci_action) 289 | 290 | -------------------------------------------------------------------------------- /hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # hooks/build 3 | # https://docs.docker.com/docker-hub/builds/advanced/ 4 | 5 | echo "[***] START SCRIPT" 6 | echo "[---] CURRENT WORKING DIRECTORY: $(pwd)" 7 | echo "[---] DOCKER_REPO: ${DOCKER_REPO}" 8 | 9 | for DIR in */ ; do 10 | echo "${DIR}" 11 | DOCKERFILE_PATH="${DIR}/Dockerfile" 12 | docker build -f $DOCKERFILE_PATH -t $DOCKERFILE_PATH . 13 | done 14 | 15 | echo "[***] END SCRIPT" -------------------------------------------------------------------------------- /latest: -------------------------------------------------------------------------------- 1 | R2023b -------------------------------------------------------------------------------- /latest-meshlab: -------------------------------------------------------------------------------- 1 | R2023b-meshlab -------------------------------------------------------------------------------- /test/mcr_version.sh: -------------------------------------------------------------------------------- 1 | # ------------------------------------------------------------------------ 2 | # Copyright (c) 2020-2023 Riccardo De Martis. MIT License. 3 | # All Trademarks referred to are the property of their respective owners. 4 | # ------------------------------------------------------------------------ 5 | 6 | 7 | XMLTAG=release 8 | result=`sed -n "/$XMLTAG/{s/.*<$XMLTAG>//;s/<\/$XMLTAG.*//;p;}" $MCR_MASTER_PATH/VersionInfo.xml` 9 | 10 | echo "=======================================================" 11 | echo "Script to verify the MCR real install path and version." 12 | echo "-------------------------------------------------------" 13 | 14 | echo "Dump VersionInfo.xml" 15 | cat $MCR_MASTER_PATH/VersionInfo.xml 16 | echo "-------------------------------------------------------" 17 | 18 | 19 | echo "Install path:" $MCR_MASTER_PATH 20 | echo "-------------------------------------------------------" 21 | 22 | echo "Checking MCR release. It must be $1" 23 | if [[ "$result" == "$1" ]]; then 24 | echo "OK. Test passed." 25 | else 26 | echo -e '\033[31m' "Error. Version found: $result" '\033[0m' 27 | exit 1 28 | fi 29 | echo "-------------------------------------------------------" 30 | 31 | --------------------------------------------------------------------------------