All Projects → Fluidbyte → Amet

Fluidbyte / Amet

Licence: unlicense
🐳 Containerized Development Environment

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Amet

container
Custom containers for various usecases
Stars: ✭ 12 (+0%)
Mutual labels:  vscode, development-environment
Code Server
VS Code in the browser
Stars: ✭ 50,541 (+421075%)
Mutual labels:  vscode, development-environment
Vscode Create Tests
A vscode extension to quickly create test files.
Stars: ✭ 16 (+33.33%)
Mutual labels:  vscode
Docker Images
Out-of-box Data Science / AI platform | AI/数据科学的瑞士军刀
Stars: ✭ 25 (+108.33%)
Mutual labels:  vscode
Vscode Laravel Extra Intellisense
This extension adds extra autocompletion for laravel projects to VSCode.
Stars: ✭ 909 (+7475%)
Mutual labels:  vscode
Vscode Yarn
VSCode extension to manage yarn commands
Stars: ✭ 18 (+50%)
Mutual labels:  vscode
Jale
Jale is a blazing fast local development environment for MacOS written in Typescript.
Stars: ✭ 24 (+100%)
Mutual labels:  development-environment
Tridentsandbox
An In-Browser Scripting IDE for HTML5/Javascript
Stars: ✭ 5 (-58.33%)
Mutual labels:  development-environment
Snipsnap
The ultimate snippets collection for VS Code
Stars: ✭ 840 (+6900%)
Mutual labels:  vscode
Aws Step Functions Constructor
VSCode extension to visualize AWS step functions
Stars: ✭ 22 (+83.33%)
Mutual labels:  vscode
Dove
A command line utility to help manage your development server in Digital Ocean
Stars: ✭ 24 (+100%)
Mutual labels:  development-environment
Clone With Vscode
A Chrome Extension to improve efficiency.
Stars: ✭ 22 (+83.33%)
Mutual labels:  vscode
Minapp
重新定义微信小程序的开发
Stars: ✭ 902 (+7416.67%)
Mutual labels:  vscode
Vscode Gnome Theme
A GNOME👣 theme for VSCode💻
Stars: ✭ 24 (+100%)
Mutual labels:  vscode
Hxcpp Debugger
Visual Studio Code Debugger for Haxe/HXCPP applications
Stars: ✭ 18 (+50%)
Mutual labels:  vscode
Vscode Azurelogicapps
Azure Logic Apps extension for VS Code
Stars: ✭ 25 (+108.33%)
Mutual labels:  vscode
React Native Typescript Boilerplate
The default React Native empty project converted to use TypeScript.
Stars: ✭ 7 (-41.67%)
Mutual labels:  vscode
Wslgit
Use Git installed in Bash on Windows/Windows Subsystem for Linux (WSL) from Windows and Visual Studio Code (VSCode)
Stars: ✭ 903 (+7425%)
Mutual labels:  vscode
Press Sync
The easiest way to synchronize posts, media, users and more between two WordPress sites.
Stars: ✭ 22 (+83.33%)
Mutual labels:  development-environment
Vscode Smarty
Smarty syntax highlight extension for Visual Studio Code
Stars: ✭ 10 (-16.67%)
Mutual labels:  vscode

Amet

Containerized, portable development environment.

Introduction

The concept of this project is to create a development environment that utilizes Docker and Code-Server to create a fully functional, browser-based, portable development environment.

Quick Start

Clone the repo:

git clone [email protected]:Fluidbyte/amet.git

Run the script, supplying desired username and password for your development environment.

./amet.sh -u <username> -p <password> [-s <shell>]

Note: the <shell> can be bash or zsh (default: bash)

After this script completes the editor will be running at https://<HOST|IP>:3000. It will prompt you for the password you entered when running the script.

If you would like to access the environment over SSH:

ssh -p 3022 localhost

Just enter the password you specified above.

Customizing the Environment

The idea with this project is that your entire development environment is built as an ubuntu container. To add in support for the programming languages you work with, libraries you need, or even to bootstrap your dotfiles, Amet allows you to specify a customizer script. The script will be run during the build in the Dockerfile, under permissions of the non-root user. But don't fret, you can sudo without a password!

Example customizer

#!/bin/bash
set -e  # Break the build if there are any errors in this script
set -x  # Print out each instruction in the build output

USER=$(whoami)

# Install Node.js
curl -sL https://deb.nodesource.com/setup_11.x | sudo -E bash -
sudo apt-get install -y nodejs

# Install python and tmux
sudo apt-get install -y tmux python

# Global NPM packages
sudo npm i -g yarn binci

# Take ownership of local caches
sudo chown -R $USER:$USER ~/.config ~/.npm

# Install ripgrep
curl -LO https://github.com/BurntSushi/ripgrep/releases/download/0.10.0/ripgrep_0.10.0_amd64.deb
sudo dpkg -i ripgrep_0.10.0_amd64.deb
rm -f ripgrep_0.10.0_amd64.deb

To build with the customizer script, just pass the -c path/to/customizer.sh option to amet.sh. It doesn't need to be chmodded executable, Amet will take care of it!

Docker-in-Docker

The Docker container builds a docker client and service which can be used without conflicting with the host docker instance.

Persisting Data

When the container is started it will mount a volume to a /sync directory in the container and continually sync the /home/<username> directory. This directory will appear in the working directory where the ./amet.sh ... startup command was run.

Additionally, the following directories will be created (on first run) or synced internally (any subsequent runs):

  • ~/code-server: maintains all data, config, extensions, etc for Code-Server
  • ~/workspace: working environment that Code-Server opens initially

Troubleshooting

Getting "error creating aufs mount to ..." when launching containers inside Amet
On some systems, docker's default and super-efficient aufs storage driver can't be used in docker-in-docker containers like Amet. Simply re-run amet.sh and add the -f vfs option. This increases the disk space required to store docker images and can moderately slow builds and launches, but is highly compatible.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].