{"id":47756217,"url":"https://github.com/gnu-octave/docker","last_synced_at":"2026-04-03T04:22:24.707Z","repository":{"id":41746204,"uuid":"305247921","full_name":"gnu-octave/docker","owner":"gnu-octave","description":"Docker images of GNU Octave.","archived":false,"fork":false,"pushed_at":"2026-02-23T20:14:31.000Z","size":835,"stargazers_count":40,"open_issues_count":2,"forks_count":7,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-02-24T02:51:47.623Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gnu-octave.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-10-19T03:01:47.000Z","updated_at":"2026-02-23T20:14:36.000Z","dependencies_parsed_at":"2023-11-22T18:35:42.908Z","dependency_job_id":"b3830de1-370a-41d9-86fb-e5b18799009d","html_url":"https://github.com/gnu-octave/docker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gnu-octave/docker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnu-octave%2Fdocker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnu-octave%2Fdocker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnu-octave%2Fdocker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnu-octave%2Fdocker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gnu-octave","download_url":"https://codeload.github.com/gnu-octave/docker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gnu-octave%2Fdocker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31333234,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T03:20:36.090Z","status":"ssl_error","status_checked_at":"2026-04-03T03:20:35.133Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-03T04:22:24.089Z","updated_at":"2026-04-03T04:22:24.702Z","avatar_url":"https://github.com/gnu-octave.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker images of GNU Octave\n\n\u003e - DockerHub: https://hub.docker.com/r/gnuoctave/octave\n\u003e - GitHub: https://github.com/gnu-octave/docker\n\nThe Octave images can be run by\n- [Docker](https://www.docker.com/):\n  ```sh\n  # Obtain image\n\n  docker pull docker.io/gnuoctave/octave:11.1.0\n\n  # Start container (command-line interface)\n\n  docker run -it --rm gnuoctave/octave:11.1.0 octave\n  ```\n- [Podman](https://podman.io/): as before, replace `docker` with `podman`.\n- [Singularity](https://sylabs.io/singularity/):\n  ```sh\n  singularity pull docker://gnuoctave/octave:11.1.0\n\n  # Start container (command-line interface)\n\n  singularity run octave_11.1.0.sif\n  ```\n\nSee below for starting Octave with GUI and advanced options, like mounting the host's user directory.\n\n\n## Easy installation\n\nAn installation script is provided,\nthat can be called directly with this shell command:\n```bash\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/gnu-octave/docker/main/install.sh)\" -t docker\n```\nTo remove the installation, type:\n```bash\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/gnu-octave/docker/main/install.sh)\" -u -f\n```\nIt creates links in `$HOME/bin`,\nas well as a Desktop entry,\nto start the Octave as if it was installed by the Linux distribution.\n\n**Note:** The system must have either Docker (= Podman) or Singularity\ninstalled and the user account must be setup to use those tools properly.\nPlease adapt the shell command after `-t` respectively.\n\n\n## Starting the Octave GUI\n\nUsing Docker or Podman run:\n```sh\ndocker run \\\n  --rm \\\n  --network=host \\\n  --env=\"DISPLAY\" \\\n  --env=\"HOME=$HOME\" \\\n  --env=\"XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR\" \\\n  --user $(id -u):$(id -g) \\\n  --volume=\"$HOME:$HOME:rw\" \\\n  --volume=\"/dev:/dev:rw\" \\\n  --volume=\"/run/user:/run/user:rw\" \\\n  --workdir=\"$HOME\" \\\n  docker.io/gnuoctave/octave:11.1.0 octave --gui\n```\n\nFor old Octave 4.x.x versions you might additionally pass the\n`--env=QT_GRAPHICSSYSTEM=native` environment variable.\n\nThe following error results from a missing `$HOME/.Xauthority` file:\n```\nAuthorization required, but no authorization protocol specified\noctave: unable to open X11 DISPLAY\noctave: disabling GUI features\n```\nCreate this file via `ln -s -f \"$XAUTHORITY\" $HOME/.Xauthority`.\n\n\u003e **Note:** The best experience was made with Singularity and Docker.\n\u003e Podman had several flaws when run as unprivileged (non-root) user.\n\n\u003e **Note:** The \"Easy installation\" described above does a few tweaks\n\u003e to the `docker run` command to enable parallel usage of multiple Octave\n\u003e versions and `sudo`-support for the non-root user.\n\n\nUsing Singularity, start Octave with GUI with this command:\n```\nsingularity exec --bind /run/user octave_11.1.0.sif octave --gui\n```\n\n\n## Use qt graphics_toolkit in headless environments\n\nIf the container image is not started or able to start as explained in the previous section,\nusing the hosts graphics environment, only \"gnuplot\" is available:\n```\ndocker run --rm -it gnuoctave/octave:9.4.0 bash\n\nroot@03cb8555f83f:/workdir# octave --eval available_graphics_toolkits\noctave: X11 DISPLAY environment variable not set\noctave: disabling GUI features\nans =\n{\n  [1,1] = gnuplot\n}\n```\n\nTo make advanced \"qt\" graphics available in headless environments,\none potential solution is install the following packages at container image startup\nand start Octave using `xvfb-run`:\n```\n$ xvfb-run octave --eval available_graphics_toolkits\nQStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'\nans =\n{\n  [1,1] = fltk\n  [1,2] = gnuplot\n  [1,3] = qt\n}\n```\n\nFor details, see [Xvfb](https://en.wikipedia.org/wiki/Xvfb)\nand [#27](https://github.com/gnu-octave/docker/issues/27#issuecomment-2703629974)\nwith thanks to [@ELC](https://github.com/ELC).\n\n\n## Hierarchy of all available images\n\n```mermaid\ngraph LR\n    U5[ubuntu:\u003cb\u003e2404\u003c/b\u003e] --\u003e b9[docker.io/gnuoctave/octave-build:\u003cb\u003e9\u003c/b\u003e];\n    U4[ubuntu:\u003cb\u003e2204\u003c/b\u003e] --\u003e b8[docker.io/gnuoctave/octave-build:\u003cb\u003e8\u003c/b\u003e];\n    U3[ubuntu:\u003cb\u003e2004\u003c/b\u003e] --\u003e b6[docker.io/gnuoctave/octave-build:\u003cb\u003e6\u003c/b\u003e];\n    U2[ubuntu:\u003cb\u003e1804\u003c/b\u003e] --\u003e b5[docker.io/gnuoctave/octave-build:\u003cb\u003e5\u003c/b\u003e];\n    U1[ubuntu:\u003cb\u003e1604\u003c/b\u003e] --\u003e b4[docker.io/gnuoctave/octave-build:\u003cb\u003e4\u003c/b\u003e];\n    b9 --\u003e v1110[docker.io/gnuoctave/octave:\u003cb\u003e11.1.0\u003c/b\u003e];\n    b9 --\u003e v1030[docker.io/gnuoctave/octave:\u003cb\u003e10.3.0\u003c/b\u003e];\n    b9 --\u003e v1020[docker.io/gnuoctave/octave:\u003cb\u003e10.2.0\u003c/b\u003e];\n    b9 --\u003e v1010[docker.io/gnuoctave/octave:\u003cb\u003e10.1.0\u003c/b\u003e];\n    b9 --\u003e v940[docker.io/gnuoctave/octave:\u003cb\u003e9.4.0\u003c/b\u003e];\n    b9 --\u003e v930[docker.io/gnuoctave/octave:\u003cb\u003e9.3.0\u003c/b\u003e];\n    b9 --\u003e v920[docker.io/gnuoctave/octave:\u003cb\u003e9.2.0\u003c/b\u003e];\n    b9 --\u003e v910[docker.io/gnuoctave/octave:\u003cb\u003e9.1.0\u003c/b\u003e];\n    b8 --\u003e v840[docker.io/gnuoctave/octave:\u003cb\u003e8.4.0\u003c/b\u003e];\n    b8 --\u003e v830[docker.io/gnuoctave/octave:\u003cb\u003e8.3.0\u003c/b\u003e];\n    b8 --\u003e v820[docker.io/gnuoctave/octave:\u003cb\u003e8.2.0\u003c/b\u003e];\n    b8 --\u003e v810[docker.io/gnuoctave/octave:\u003cb\u003e8.1.0\u003c/b\u003e];\n    b6 --\u003e v730[docker.io/gnuoctave/octave:\u003cb\u003e7.3.0\u003c/b\u003e];\n    b6 --\u003e v720[docker.io/gnuoctave/octave:\u003cb\u003e7.2.0\u003c/b\u003e];\n    b6 --\u003e v710[docker.io/gnuoctave/octave:\u003cb\u003e7.1.0\u003c/b\u003e];\n    b6 --\u003e v640[docker.io/gnuoctave/octave:\u003cb\u003e6.4.0\u003c/b\u003e];\n    b6 --\u003e v630[docker.io/gnuoctave/octave:\u003cb\u003e6.3.0\u003c/b\u003e];\n    b6 --\u003e v620[docker.io/gnuoctave/octave:\u003cb\u003e6.2.0\u003c/b\u003e];\n    b6 --\u003e v610[docker.io/gnuoctave/octave:\u003cb\u003e6.1.0\u003c/b\u003e];\n    b5 --\u003e v520[docker.io/gnuoctave/octave:\u003cb\u003e5.2.0\u003c/b\u003e];\n    b5 --\u003e v510[docker.io/gnuoctave/octave:\u003cb\u003e5.1.0\u003c/b\u003e];\n    b5 --\u003e v441[docker.io/gnuoctave/octave:\u003cb\u003e4.4.1\u003c/b\u003e];\n    b5 --\u003e v440[docker.io/gnuoctave/octave:\u003cb\u003e4.4.0\u003c/b\u003e];\n    b4 --\u003e v422[docker.io/gnuoctave/octave:\u003cb\u003e4.2.2\u003c/b\u003e];\n    b4 --\u003e v421[docker.io/gnuoctave/octave:\u003cb\u003e4.2.1\u003c/b\u003e];\n    b4 --\u003e v420[docker.io/gnuoctave/octave:\u003cb\u003e4.2.0\u003c/b\u003e];\n    b4 --\u003e v403[docker.io/gnuoctave/octave:\u003cb\u003e4.0.3\u003c/b\u003e];\n    b4 --\u003e v402[docker.io/gnuoctave/octave:\u003cb\u003e4.0.2\u003c/b\u003e];\n    b4 --\u003e v401[docker.io/gnuoctave/octave:\u003cb\u003e4.0.1\u003c/b\u003e];\n    b4 --\u003e v400[docker.io/gnuoctave/octave:\u003cb\u003e4.0.0\u003c/b\u003e];\n    classDef U fill:#ff7f24,stroke:#333,stroke-width:2px;\n    class U1 U;\n    class U2 U;\n    class U3 U;\n    class U4 U;\n    class U5 U;\n    classDef b fill:#ff0,stroke:#333,stroke-width:2px;\n    class b4 b;\n    class b5 b;\n    class b6 b;\n    class b8 b;\n    class b9 b;\n    classDef age1 fill:#9aff9a,stroke:#333,stroke-width:2px;\n    classDef age2 fill:#7fffd4,stroke:#333,stroke-width:2px;\n    classDef age3 fill:#fff68f,stroke:#333,stroke-width:2px;\n    classDef age4 fill:#ffd700,stroke:#333,stroke-width:2px;\n    classDef age5 fill:#ffa500,stroke:#333,stroke-width:2px;\n    classDef age6 fill:#ff6a6a,stroke:#333,stroke-width:2px;\n    class v1110 age1;\n    class v1030 age1;\n    class v1020 age1;\n    class v1010 age1;\n    class v940 age1;\n    class v930 age1;\n    class v920 age1;\n    class v910 age1;\n    class v840 age1;\n    class v830 age1;\n    class v820 age1;\n    class v810 age1;\n    class v730 age2;\n    class v720 age2;\n    class v710 age2;\n    class v640 age2;\n    class v630 age2;\n    class v620 age2;\n    class v610 age2;\n    class v520 age3;\n    class v510 age3;\n    class v441 age4;\n    class v440 age4;\n    class v422 age5;\n    class v421 age5;\n    class v420 age5;\n    class v403 age6;\n    class v402 age6;\n    class v401 age6;\n    class v400 age6;\n```\n\n\n## Further reading\n\n- \u003chttps://siko1056.github.io/blog/2021/06/10/octave-docker.html\u003e\n  A longer blog article about this project including descriptions how to use\n  and customize these images for specific needs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnu-octave%2Fdocker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnu-octave%2Fdocker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnu-octave%2Fdocker/lists"}