alnoda-workspaces/workspaces/python-workspace
2021-09-15 08:12:08 +00:00
..
examples/simple-script rewritten project README 2021-09-13 10:30:50 +00:00
.pylintrc python wid - work started 2021-09-11 17:36:45 +00:00
Dockerfile utils to python-workspace & ubuntu-workspace 2021-09-15 08:12:08 +00:00
python-requirements.txt python wid - work started 2021-09-11 17:36:45 +00:00
README.md rewritten project README 2021-09-13 10:30:50 +00:00
README_copy.md rewritten project README 2021-09-13 10:30:50 +00:00

Python workspace

Self-contained complete dockerized environment for a better Python experience. Contains WEB-based VS-code and many tools set up and configured: job scheduler, linter, testing, auto-documentation, profiling. Launch it on your laptop, or on a cloud server and work from any device.

Try it out

docker run --name space-1 -d -p 8020-8035:8020-8035 -p 9000:9000 alnoda/python-workspace

and open localhost:8020 in browser.

Contents

About

The workspace contains browser-based Visual Studio Code and multiple tools which make working with Ansible and Terraform more convenient.

Workspace tools with UI:

  • Workspace UI - Browser-based UI for Ansible-Terraform Workspace. Launch all workspace tools from one place. Customize to your yown needs.
  • Eclipse Theia - open source version of popular Visual Studio Code IDE. Theia is trully open-source, has VS-Code extensions and works in browser. This means it can run inside a docker container on local machine or in cloud. For the Ansible-Terraform workspace beautiful SynthWave '84 theme is set by default.
  • Terminal - secure browser-based terminal.
  • FileBrowser - manage files and folders inside the workspace, and exchange data between local environment and the workspace
  • Cronicle - task scheduler and runner, with a web based front-end UI. It handles both scheduled, repeating and on-demand jobs, targeting any number of worker servers, with real-time stats and live log viewer.
  • Static File Server - view any static html sites as easy as if you do it on your local machine. Serve static websites easily.
  • Ungit - rings user friendliness to git without sacrificing the versatility of it.
  • MkDocs - maintain documentation for your workspace or project with only markdown.
  • Midnight Commander - Feature rich visual file manager with internal text viewer and editor.
  • Process Monitor - Monitor running process and resource utilization.

Other:

  • Docker in docker
  • Zsh, Oh my Zsh
  • Python 3, Pip
  • Node/nodeenv
  • git, git-flow
  • curl, wget, telnet, jq,
  • nano, vim, mc, ncdu, htop
  • supervisord
  • cron

Use-cases

Workspace entirely in Docker is, of course, less flexible than a workspace on your laptop, which some of us have been carefully crafting for years. So why would you even consider starting a new project in a dockerized workspace? Here are the reasons:

Get started fast. Building a new workspace is a tedious task. You need to install a programming language, set up and configure multiple tools (this can take days). You'd have to research, chose, and learn how to do such things as linting, testing, pre-commit hooks, debugging, and profiling (can take months). This workspace has those tools selected and set up. Documentation on how to use them is provided, with an example.

Switch between projects easily. If you are working on a serious development project, the chances are that you are dealing with multiple Git branches, various configuration files, and environmental variables. There is a good chance Git branches have different dependencies and versions, so you also use virtual environments. It is likely that you also have different development and production environments, with the need to change the profile of a cloud provider, kubeconfig, ssh-key. Switching between such environments of a single project requires several actions, which is terrible. Now, what if you are working on multiple software engineering projects? Managing and switching between them becomes a real overhead. When you are working in a dockerized workspace, the switch is just one action of stopping one container and starting another!

Movable workspaces. You mostly work on a Linux/macOS laptop, which is easy to take anywhere.

Do you have a powerful gaming PC

Workspaces in cloud.

Workspaces with backups.

Collaboration made simple.

Isolate experiments.

Fast POC.