Jack Hadrill
44cf0564e9
continuous-integration/drone/push Build is passing
Details
Reviewed-on: #2 |
||
---|---|---|
.vscode | ||
src/containerspawner | ||
test | ||
.drone.yml | ||
.flake8 | ||
.gitignore | ||
.pylintrc | ||
Dockerfile | ||
LICENSE | ||
README.md | ||
pyproject.toml | ||
setup.cfg | ||
setup.py |
README.md
Code Spawner
A tool for spawning a bespoke container upon receiving an HTTP request.
Usage
More details coming soon.
An example docker-compose.yml
config is show below:
version: '3'
services:
...
container-spawner:
image: git.jacknet.io/jackhadrill/container-spawner:latest
restart: always
environment:
CONTAINER_IMAGE: "git.jacknet.io/jackhadrill/code-server:latest"
CONTAINER_PREFIX: "vscode"
CONTAINER_NETWORK: "vscode_backend"
CONTAINER_PERSIST: "/home/coder"
...
Process description
Upon receiving any HTTP request, Code Spawner will launch a bespoke container on behalf of the user (if not already existing), equivalent to having used the command below. The user's name is derived from the X-Forwarded-Preferred-User
header, original sent by OAuth2 Proxy.
$ docker run -d --rm --name ${CONTAINER_PREFIX}-${X-Forwarded-Preferred-User} -v ${CONTAINER_PREFIX}-${X-Forwarded-Preferred-User}:${CONTAINER_PERSIST} --network ${CONTAINER_NETWORK} ${IMAGE_NAME}
For example, assuming X-Forwarded-Preferred-User
is jack
:
$ export CONTAINER_IMAGE="git.jacknet.io/jackhadrill/code-server:latest"
$ export CONTAINER_PREFIX="vscode"
$ export CONTAINER_NETWORK="vscode_backend"
$ export CONTAINER_PERSIST="/home/coder"
$ docker run -d --rm --name vscode-jack -v vscode-jack:/home/coder --network vscode_backend git.jacknet.io/jackhadrill/code-server:latest