Full Web-Based Chrome Development Environment
$ git clone https://github.com/dakami/dochro
$ cd dochro
$ docker build -t dochro .
### come back in many hours, and I've only tested on +64G of memory
### Unsure if requires root, sure requires SYS_PTRACE for gdb to function
# docker run --rm --cap-add=SYS_PTRACE -it -p 127.0.0.1:40080:8080 dochro
# now navigate browser to 127.0.0.1:40080 (use ssh -L40080:127.0.0.1:40080 $SERVER if remote)
#TODO
- Custom registry (on each cloud?) to support enormous images
- Eliminate prompting for session / integrate with Autoclave / swap XRDP out / fix double window manager issues
- Host more than just Chromium, and add a way to build a smaller
Chromium image (build flags, most likely). Alternate useful environments:
- Firefox
- Linux
- QEMU
- Eclipse
- Integrate patch submission -- we can find the bugs, we can fix the bugs, one more step is submitting patches (or at least, extracting diffs).
- More languages! Liclipse license doesn't really afford just dropping it into this environment, but Eclipse can actually be fairly fast (at least given cloud scale resources) and we can give people something more than Cloud9
- Why not give people Cloud9 too?
- Something like "docker build --build-arg GIT=https://github.com/dakami/autoclave" doclave ." would be pretty cool -- effectively, declare what you want to work on, get a fully configured dev environment.
- Oh, there's lots to do to clean things up after build. Basically "workspace2" needs a bunch of polish to actually launch content_shell correctly, chrome, etc. Should we build both debug and release?
- Parallelize Eclipse CDT indexer, possibly with omp4j. It seems like PDOM can be parallelized. Alternatively, replace the backing store with an actual database, possibly a graph database. GPU backed databases are fairly absurd, and it'd be good to demonstrate that. Neo4J and Alenka are interesting here (the latter is C++/GPU only, but it's hilariously fast).
- Work out what requires root, what requires SYS_PTRACE, and actually tell people rather than forcing them to guess. See if Clear Containers as is allows less ... surprising semantics, or could.
- Work out actual required memory, for builds and operational environments.