Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
376 stars 19 forks source link

Opening a shell in Interlisp which runs in a container #765

Closed masinter closed 2 years ago

masinter commented 2 years ago

I'm not sure what (CHAT 'SHELL) should do when running in a docker container. (CHAT "hostname") should run "ssh" without having to set up a tunnel to the server -- should we set up the ssh tunnel? Also -- using docker with X rather than VNC -- is that important?

@fghalasz @stumbo what do you think?

Discussed in https://github.com/Interlisp/medley/discussions/688

Originally posted by **reflektoin** February 20, 2022 **EDIT: This isn't really an issue for me at the moment. I have started to use the online version** Hi, Thank you for this project! By following the [Docker guide here](https://github.com/Interlisp/medley/wiki/Running-with-Docker), I was able to get Interlisp running easily. But I got stuck when I tried to open a terminal in Interlisp with command (IL:CHAT 'SHELL). I got a message `[Connection closed by remote host]` My current setup is that I'm running Interlisp Docker container on a Ubuntu server. From my own computer I create ssh-tunnel to the server and use either SSVNC or xtightvnc to connect to Interlisp. Does someone have tips how to proceed debugging this? And thanks again for making this!
masinter commented 2 years ago

@reflektoin thanks for your note.

I tried this myself and was able to (re)install docker desktop for windows and, following the advice in https://github.com/Interlisp/medley/wiki/Running-with-Docker and I had problems.

VNC uses socket 5900. X uses socket 6000. The container has Xvnc running in it. If Medley uses the DISPLAY of the Xvnc server, then you want -p 6000:6000 (instead of 5900) and want the command line to use the DISPLAY setting to be the IP address (followed by :0) of the machine running X. I can get this to work on the command line inside the container

export DISPLAY=:0 cd /usr/local/interlisp/medley ./run-medley -noscroll -dimensions=1280x720 -full

If you want to use VNC, that works OK if I use a VNC viewer I got from Microsoft store, but TightVNC complains about authentication or loopback. The problem that @reflektoin reported is that CHAT(SHELL) doesn't work unless I do

export SHELL=/bin/sh

before calling run-medley.

The docker image don't pass on the screen dimensions but always use fixed 1200x720.

Running with Docker has the ability to use https://docs.docker.com/storage/volumes/ volumes to mount various volumes on the docker host, including read-only. It would be useful to include an example of mounting (in the docker run command) of mounting /mnt/c readonly the c: volume and mounting the user's "ilisp" directory as /home/medley.

Probably we will need to push some of the logic in the "online" edition into the image.

nbriggs commented 2 years ago

This is a one-line fix in maiko if we assume that /bin/sh is a usable/reasonable default (assuming it's present in /etc/shells) if SHELL is not set.

Any objections to that?

masinter commented 2 years ago

I think that's fine. The rest of the discussion should be another issue on the "Running with Docker" instructions

masinter commented 2 years ago

This one was closed by Interlisp/maiko#424