websh 3.6 (Tcl web framework) for amd64/arm64: CGI interpreter or Apache httpd + mod_websh
9.4K
Maintained by:
Vangel Trajkovski (community image, not published by the Apache Software Foundation)
Where to get help:
the websh documentation, the Tcler's Wiki, or Stack Overflow
Dockerfile links3.6.0b5-tcl8.6.18, 3.6.0b5-tcl8.6.18-slim, 3.6.0b5-tcl8.6.18-slim-trixie, 3.6.0b5-tcl8.6, 3.6.0b5-tcl8.6-slim, 3.6.0b5-tcl8.6-slim-trixie, 3.6.0b5-tcl8, 3.6.0b5-tcl8-slim, 3.6.0b5-tcl8-slim-trixie, 3.6-tcl8.6.18, 3.6-tcl8.6.18-slim, 3.6-tcl8.6.18-slim-trixie, 3.6-tcl8.6, 3.6-tcl8.6-slim, 3.6-tcl8.6-slim-trixie, 3.6-tcl8, 3.6-tcl8-slim, 3.6-tcl8-slim-trixie, 3.6.0b5, 3.6.0b5-slim, 3.6.0b5-slim-trixie, 3.6, 3.6-slim, 3.6-slim-trixie, latest, slim, slim-trixie3.6.0b5-tcl8.6.18-alpine, 3.6.0b5-tcl8.6.18-alpine3.24, 3.6.0b5-tcl8.6-alpine, 3.6.0b5-tcl8.6-alpine3.24, 3.6.0b5-tcl8-alpine, 3.6.0b5-tcl8-alpine3.24, 3.6-tcl8.6.18-alpine, 3.6-tcl8.6.18-alpine3.24, 3.6-tcl8.6-alpine, 3.6-tcl8.6-alpine3.24, 3.6-tcl8-alpine, 3.6-tcl8-alpine3.24, 3.6.0b5-alpine, 3.6.0b5-alpine3.24, 3.6-alpine, 3.6-alpine3.24, alpine, alpine3.243.6.0b5-tcl8.6.18-rocky9-minimal, 3.6.0b5-tcl8.6-rocky9-minimal, 3.6.0b5-tcl8-rocky9-minimal, 3.6-tcl8.6.18-rocky9-minimal, 3.6-tcl8.6-rocky9-minimal, 3.6-tcl8-rocky9-minimal, 3.6.0b5-rocky9-minimal, 3.6-rocky9-minimal, rocky9-minimal3.6.0b5-tcl8.6.18-rocky8-minimal, 3.6.0b5-tcl8.6-rocky8-minimal, 3.6.0b5-tcl8-rocky8-minimal, 3.6-tcl8.6.18-rocky8-minimal, 3.6-tcl8.6-rocky8-minimal, 3.6-tcl8-rocky8-minimal, 3.6.0b5-rocky8-minimal, 3.6-rocky8-minimal, rocky8-minimal3.6.0b5-tcl8.6.18-apache, 3.6.0b5-tcl8.6-apache, 3.6.0b5-tcl8-apache, 3.6-tcl8.6.18-apache, 3.6-tcl8.6-apache, 3.6-tcl8-apache, 3.6.0b5-apache, 3.6-apache, apache3.6.0b5-tcl8.6.18-rocky9-minimal-apache, 3.6.0b5-tcl8.6-rocky9-minimal-apache, 3.6.0b5-tcl8-rocky9-minimal-apache, 3.6-tcl8.6.18-rocky9-minimal-apache, 3.6-tcl8.6-rocky9-minimal-apache, 3.6-tcl8-rocky9-minimal-apache, 3.6.0b5-rocky9-minimal-apache, 3.6-rocky9-minimal-apache, rocky9-minimal-apache3.6.0b5-tcl8.6.18-rocky8-minimal-apache, 3.6.0b5-tcl8.6-rocky8-minimal-apache, 3.6.0b5-tcl8-rocky8-minimal-apache, 3.6-tcl8.6.18-rocky8-minimal-apache, 3.6-tcl8.6-rocky8-minimal-apache, 3.6-tcl8-rocky8-minimal-apache, 3.6.0b5-rocky8-minimal-apache, 3.6-rocky8-minimal-apache, rocky8-minimal-apache3.6.0b5-tcl8.5.19, 3.6.0b5-tcl8.5.19-slim, 3.6.0b5-tcl8.5.19-slim-trixie, 3.6.0b5-tcl8.5, 3.6.0b5-tcl8.5-slim, 3.6.0b5-tcl8.5-slim-trixie, 3.6-tcl8.5.19, 3.6-tcl8.5.19-slim, 3.6-tcl8.5.19-slim-trixie, 3.6-tcl8.5, 3.6-tcl8.5-slim, 3.6-tcl8.5-slim-trixie3.6.0b5-tcl8.5.19-alpine, 3.6.0b5-tcl8.5.19-alpine3.24, 3.6.0b5-tcl8.5-alpine, 3.6.0b5-tcl8.5-alpine3.24, 3.6-tcl8.5.19-alpine, 3.6-tcl8.5.19-alpine3.24, 3.6-tcl8.5-alpine, 3.6-tcl8.5-alpine3.243.6.0b5-tcl8.5.19-rocky9-minimal, 3.6.0b5-tcl8.5-rocky9-minimal, 3.6-tcl8.5.19-rocky9-minimal, 3.6-tcl8.5-rocky9-minimal3.6.0b5-tcl8.5.19-rocky8-minimal, 3.6.0b5-tcl8.5-rocky8-minimal, 3.6-tcl8.5.19-rocky8-minimal, 3.6-tcl8.5-rocky8-minimal3.6.0b5-tcl8.5.19-apache, 3.6.0b5-tcl8.5-apache, 3.6-tcl8.5.19-apache, 3.6-tcl8.5-apache3.6.0b5-tcl8.5.19-rocky9-minimal-apache, 3.6.0b5-tcl8.5-rocky9-minimal-apache, 3.6-tcl8.5.19-rocky9-minimal-apache, 3.6-tcl8.5-rocky9-minimal-apache3.6.0b5-tcl8.5.19-rocky8-minimal-apache, 3.6.0b5-tcl8.5-rocky8-minimal-apache, 3.6-tcl8.5.19-rocky8-minimal-apache, 3.6-tcl8.5-rocky8-minimal-apache3.6.0b5-tcl8.5.13, 3.6.0b5-tcl8.5.13-slim, 3.6.0b5-tcl8.5.13-slim-trixie, 3.6-tcl8.5.13, 3.6-tcl8.5.13-slim, 3.6-tcl8.5.13-slim-trixie3.6.0b5-tcl8.5.13-alpine, 3.6.0b5-tcl8.5.13-alpine3.24, 3.6-tcl8.5.13-alpine, 3.6-tcl8.5.13-alpine3.243.6.0b5-tcl8.5.13-rocky9-minimal, 3.6-tcl8.5.13-rocky9-minimal3.6.0b5-tcl8.5.13-rocky8-minimal, 3.6-tcl8.5.13-rocky8-minimal3.6.0b5-tcl8.5.13-apache, 3.6-tcl8.5.13-apache3.6.0b5-tcl8.5.13-rocky9-minimal-apache, 3.6-tcl8.5.13-rocky9-minimal-apache3.6.0b5-tcl8.5.13-rocky8-minimal-apache, 3.6-tcl8.5.13-rocky8-minimal-apacheWhere to file issues:
https://github.com/vrtexe/websh-docker/issues
Supported architectures:
amd64, arm64v8 (every tag holds both)
Published image artifact details:
ghcr.io/vrtexe/websh (the same tags and digests)
Image updates:
the build workflow rebuilds every tag monthly for operating system fixes
Source of these images:
https://github.com/vrtexe/websh-docker
Websh is a rapid development environment for building powerful and reliable web applications. It is a standard Tcl extension and is released as Open Source Software. Websh is versatile and handles everything from HTML generation to data-base driven one-to-one page customization.
websh was originally developed by Netcetera and contributed to the Apache Software Foundation in 2001. These images contain websh 3.6.0b5, built from the last commit of the websh repository (2018), which adds Apache 2.4 support and builds with current compilers. websh supports Tcl 8.x only.
The images are built on traykovski/tcl: websh is compiled on the Tcl -dev image and copied into the matching runtime image.
| Tcl | Status | Threads |
|---|---|---|
| 8.6.18 | current (latest) | yes |
| 8.5.19 | last 8.5 release | no |
| 8.5.13 | legacy, for applications pinned to this patch level | no |
websh$ docker run -it --rm traykovski/websh:3.6
websh is also a Tcl package: package require websh works in plain tclsh.
.ws3 pages with Apache# htdocs/hello.ws3
web::command default {
web::put "hello [web::param name]"
}
web::dispatch
$ docker run -d --name some-websh -p 8080:80 -v "$PWD/htdocs":/var/www/html traykovski/websh:3.6-apache
Then visit http://localhost:8080/hello.ws3.
docker composeExample compose.yaml for websh:
services:
web:
image: traykovski/websh:3.6-apache
ports:
- 8080:80
volumes:
- ./htdocs:/var/www/html
Run docker compose up and visit http://localhost:8080/hello.ws3.
Dockerfile for your applicationFROM traykovski/websh:3.6-apache
COPY htdocs/ /var/www/html/
By default each .ws3 file gets its own interpreter, like CGI. For shared interpreter pools or templated .html, add a WebshConfig file to the Apache configuration, for example in /etc/apache2/conf-enabled/ (Debian) or /etc/httpd/conf.d/ (Rocky Linux).
prefork MPM, which keeps Tcl in a process's main thread: Tcl 8.5's stack check misbehaves in worker threads. Keep prefork if you replace the configuration.docker logs).The traykovski/websh images come in many flavors, each designed for a specific use case.
traykovski/websh:<version>This is the defacto image. If you are unsure about what your needs are, you probably want to use this one. Debian trixie slim with the websh interpreter and the websh Tcl package; use it for CGI, scripts, or as a base.
traykovski/websh:<version>-alpineThe same, based on the popular Alpine Linux project: the smallest image. It uses musl libc instead of glibc, so compiled extensions must be built for musl.
traykovski/websh:<version>-rocky9-minimal, traykovski/websh:<version>-rocky8-minimalThe same, based on Rocky Linux minimal, for applications that run on RHEL-family systems.
traykovski/websh:<version>-apacheDebian slim with Apache httpd 2.4 and mod_websh: serves *.ws3 files under /var/www/html on port 80.
traykovski/websh:<version>-rocky9-minimal-apache, traykovski/websh:<version>-rocky8-minimal-apacheThe same with Rocky Linux's httpd.
View license information for websh (Apache License 2.0) and Tcl (BSD-style) for the software contained in this image. Both, with websh's NOTICE, are included in every image under /usr/local/share/licenses/; the build files are MIT licensed.
As with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, and Apache httpd in the -apache variants, along with any direct or indirect dependencies of the primary software being contained).
As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
Content type
Image
Digest
sha256:9a33e66d7…
Size
32.3 MB
Last updated
2 days ago
docker pull traykovski/websh