Resolve "Add docker support for interactive web terminal"
What does this MR do?
Add support of interactive web terminal for the
docker+machine executor will be done in a separate MR
Things to do
- Proxy stdout/in/err to WebSocket
io.ReadWriteCloserand pass that to the terminal package instead, so no new dependencies are added to
- Make sure it behaves the same as the k8s/shell executor
- All connection closing is handled properly with no panics
Migrate the changes to
gitlab-terminalto upstream repo
See if we need to log errors inside of the terminal package or use the channels we already have for
writemethods for docker
- Do not remove container if a terminal is connected. Only remove it if after disconnect.
- Add documentation about the wait for terminal limitation for docker executor.
Behavior of web terminal
- Open connection with the container
- The user has shell access to the container
What the user doesn't have when using docker executor
- The wait behaviour, since the nature of docker itself, is to run a script and as soon as it exits the container is down, persistent connections are not possible with the current lifecycle of the containers. In !1024 we change the lifecycle of the docker container so we are able to persist connections.
Does this MR meet the acceptance criteria?
- Documentation created/updated
- Added for this feature/bug
- All builds are passing
Branch has no merge conflicts with
master(if you do - rebase it please)
What are the relevant issue numbers?
!1024 to make
waitForTerminal to work
Closes #3467 (closed)