gnu-octave / docker Goto Github PK
View Code? Open in Web Editor NEWDocker images of GNU Octave.
License: GNU General Public License v3.0
Docker images of GNU Octave.
License: GNU General Public License v3.0
Thanks for the effort. I'm wondering if someone can shared some hint on the Jupyterlab docker. I don't know how to launch the docker. It might be straightforward to experienced users, but I have been struggling.
I tried
docker run -it --rm gnuoctave/octave:7.2.0 octave
to use only the command line, and it works.
I guess the main part is:
docker run -it --rm gnuoctave/octave:jupyterlab start-notebook.sh
I'm using the latest docker hub jupyterlab-tag of today.
https://github.com/gnu-octave/docker/blob/main/jupyterlab/Dockerfile
After some usage and trying container restart I got a permission problem...
Executing the command: jupyter lab
Traceback (most recent call last):
File "/usr/local/bin/jupyter-lab", line 8, in <module>
sys.exit(main())
File "/usr/local/lib/python3.8/dist-packages/jupyter_server/extension/application.py", line 526, in launch_instance
serverapp = cls.initialize_server(argv=args)
File "/usr/local/lib/python3.8/dist-packages/jupyter_server/extension/application.py", line 496, in initialize_server
serverapp.initialize(
File "/usr/local/lib/python3.8/dist-packages/traitlets/config/application.py", line 88, in inner
return method(app, *args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/jupyter_server/serverapp.py", line 2054, in initialize
super(ServerApp, self).initialize(argv=argv)
File "/usr/local/lib/python3.8/dist-packages/traitlets/config/application.py", line 88, in inner
return method(app, *args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/jupyter_core/application.py", line 229, in initialize
self.migrate_config()
File "/usr/local/lib/python3.8/dist-packages/jupyter_core/application.py", line 155, in migrate_config
migrate()
File "/usr/local/lib/python3.8/dist-packages/jupyter_core/migrate.py", line 245, in migrate
with open(os.path.join(env['jupyter_config'], 'migrated'), 'w') as f:
PermissionError: [Errno 13] Permission denied: '/home/jovyan/.jupyter/migrated'
There is also this problem in log:
[W 2021-09-12 18:10:12.959 ServerApp] 500 PUT /lab/api/workspaces/default?1631470212934 (192.168.3.213): [Errno 13] Permission denied: '/home/jovyan/.jupyter/lab'
[W 2021-09-12 18:10:12.960 LabApp] [Errno 13] Permission denied: '/home/jovyan/.jupyter/lab'
The directory $HOME/.jupyter
has been created with
drwx--S--- 2 root users 4096 Sep 1 05:55 .jupyter
So I'm not sure how I got in the state, that the container doesn't start with the first log output, but I think this directory should be owned by ${NB_USER}
.
I run the following code
docker run --rm --network=host --env="DISPLAY" --env="HOME=$HOME" --env="XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR" --user $(id -u):$(id -g) --volume="$HOME:$HOME:rw" --volume="/dev:/dev:rw" --volume="/run/user:/run/user:rw" --workdir="$HOME" docker.io/gnuoctave/octave:8.4.0 octave --gui
then i got the error:
/usr/libexec/octave/8.4.0/exec/x86_64-pc-linux-gnu/octave-gui: error while loading shared libraries: libQt5Core.so.5: cannot open shared object file: No such file or directory
If I understood the image hierarchy correctly, when using gnuoctave/octave:6.2.0 one should have an Ubuntu 20.04 (focal) environment.
I tried to use apt and apt-get but they seem to be pulling from bionic repositories. See the output of the job:
https://gitlab.com/kakila/elementary_effects/-/jobs/1082211728
also, apt commands to manage sources.list did not work.
Hi there,
I've got a github action that pulls in the latest docker image that started failing with the following error
/usr/bin/octave-cli-8.4.0: error while loading shared libraries: libcholmod.so.5: cannot open shared object file: No such file or directory
Here's a copy of the action for reference
name: Octave Build
on:
pull_request:
paths:
- "**.m"
- ".github/workflows/build-test-octave.yaml"
jobs:
test-on-octave:
name: Octave build
runs-on: ubuntu-latest
container:
image: gnuoctave/octave
steps:
- uses: actions/checkout@v4
- name: Check octave installation
run: octave --eval "disp(version)"
- name: Run tests
run: octave --eval "run_all_tests"
The error is coming from the octave --eval "disp(version)"
step. Pinning the image to gnuoctave/octave:8.3.0
solves the error.
Any ideas? Totally possible I should be doing something differently -- should I be installing the docker image more manually maybe? As I understand it, the current setup in the above action relies on github to pull the image from DockerHub, but I don't use docker much and maybe this is user error on my part....
I'm trying to build a working IPOPT MEX file for Octave-6.4 using gnuoctave/octave:6.4.0
. But I'm getting consistent segmentation faults when I call the MEX function (except with arguments defining an essentially empty problem).
This is after doing ...
RUN apt-get --yes update && \
DEBIAN_FRONTEND="noninteractive" \
apt-get --no-install-recommends --yes install \
liblapack-dev \
coinor-libipopt-dev \
pkg-config
I'm wondering if it is an incompatibility between the LAPACK used for the IPOPT libs and for Octave? And if so, where would I find the LAPACK libs used to build Octave?
Would it be possible to build the containers with RapidJSON?
Should this have a protected main
branch? I was able to push directly to main
for c6ed029
That was a trivial fix so I'm unapologetic ;-) but maybe I shouldn't be allowed to do that at all?
Were moving from a 5.1.0 docker build from scratch to the official 6.3.0 docker image.
Before we could use qt graphics toolkit by calling octave --gui --no-gui, though we needed to restart the container once before qt was available in available_graphics_toolkits(). This hack does not seem to work in the official 6.3.0 image anymore.
Is there any other way to make qt available in a no-gui environment?
I've tried all combinations of octave, --no-gui, -gui, octavel-cli etc. and cannot find official information if that is even supposed supported.
In this Bugreport bug #54954: available_graphics_toolkit should not include 'qt' with octave-cli or --no-gui-libs the author talks about qt being "dynamically loaded", which could explain our hack to use it after a restart a bit.
I understand that this is not strictly a docker issue, but since docker images are often used in a headless microservice environment I think it is related.
Thanks!
Hi there,
It's the first time I use docker/singularity, so please forgive me if I am asking something really obvious.
I've installed the docker image for octave-6.4.0 and I can start octave.
However, I now would need to install netcdf using pkg install -forge -verbose netcdf
, but this command stops with the following output:
`octave:2> pkg install -forge -verbose netcdf
mkdir (/tmp/oct-tqi5Uw)
untar (/tmp/netcdf-1.0.14-1u9tra.tar.gz, /tmp/oct-tqi5Uw)
checking for gawk... gawk
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for mkoctfile... /usr/bin/mkoctfile-6.4.0 --verbose
checking for nc-config... no
configure: error: nc-config not found
error: pkg: error running the configure script for netcdf.
error: called from
configure_make at line 93 column 9
install at line 196 column 7
pkg at line 568 column 9`
I have checked (outside of octave) and nc-info
is installed on my machine. I think docker/singularity cannot find its location, but I do not know how to pass this information.
Any help will be greatly appreciated.
Many thanks in advance,
grg
Could you add QT to the build? I need getframe
function which is supported only by the QT graphics toolkit.
Would it be possible to add liboctave-dev package or mkoctfile to the docker images? It is necessary to build mex-files, which is required for several tools and packages.
I am receiving this error during figure creation and saving.
GL2PS warning: GL2PS must be compiled with PNG support in order to embed images in SVG streams
Failed to parse XML contents
unexpected end of file
Segmentation fault (core dumped)
GPL Ghostscript 9.55.0: Unrecoverable error, exit code 1
Hello again. I have another question. Is there a way to install Octave packages via bash? I'd like to include some packages in my custom docker image.
Can you please add libopencv-dev libavformat-dev libavcodec-dev libswscale-dev to support the video package?
I can install them only if I use the container as the default (root) user, but then I lose access to /run/user and, consequently, to some of the graphical capabilities.
Some time ago I was running publish with tree in a gitlab runner.
While updating to image 7.2.0, the script stop working because I cannot install tree or update the pkg manager. The error is
$ apt-get update
Reading package lists...
E: List directory /var/lib/apt/lists/partial is missing. - Acquire (13: Permission denied)
Cleaning up project directory and file based variables 00:01
ERROR: Job failed: exit code 1
How can one install additional tools in the octave images?
Thx.
Thanks, Kai for these Docker images. It's so useful to have all of these versions available for testing.
My goal is to make my own Octave package available with a GUI Octave in a Docker image that can be used easily on multiple OS's. I normally work on macOS and have not been able to get your GUI to work there. If you know how to make it work on macOS and Windows, I'd appreciate step-by-step instructions.
If not, I was wondering if you might consider the approach taken by compdatasci/octave-desktop. That's what I have been using, but unfortunately, it's stuck at Octave 4.2.1. They make the GUI available anywhere via a VNC connection, so you wouldn't have to have X11 installed.
dev
versions within container images(Not rushing anyone, I just wanted an issue to track)
Go to [1] see this:
update notice that the # obtain image
is one big run-on line. Not sure where that readme is sourced from...
Hello again,
Could you please explain me how to access my directories from the Octave Docker image?
I've tried unsuccessfully the --volume
option, but I am not sure I understand it 100%.
Many thanks for your help!
According to https://www.howtogeek.com/devops/understanding-dockers-latest-tag/ latest
is used as the default tag if no tag is provided. On the other hand, it won't be created automatically if a tag is provided.
I don't know docker well enough to know if it is the recommended practice to tag the latest image with the latest
tag manually. WDYT?
See also the discussion in gnu-octave/symbolic#1200
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.