All Projects → ksafranski → amet

ksafranski / amet

Licence: Unlicense license
🐳 Containerized Development Environment

Programming Languages

shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to amet

Mhy
🧩 A zero-config, out-of-the-box, multi-purpose toolbox and development environment
Stars: ✭ 128 (+884.62%)
Mutual labels:  development-environment
Docker Compose Starter
Run your development environment with a simple command using docker-compose 🚀
Stars: ✭ 159 (+1123.08%)
Mutual labels:  development-environment
Devdock
Build php development & production environment based on Docker
Stars: ✭ 242 (+1761.54%)
Mutual labels:  development-environment
Works For Me
Collection of developer toolkits
Stars: ✭ 131 (+907.69%)
Mutual labels:  development-environment
Docker Phoenix
A dockerized Phoenix development and runtime environment.
Stars: ✭ 152 (+1069.23%)
Mutual labels:  development-environment
Baker
👨‍🍳🍞 Quick and easy baking of computing environments.
Stars: ✭ 186 (+1330.77%)
Mutual labels:  development-environment
Nanobox
The ideal platform for developers
Stars: ✭ 1,530 (+11669.23%)
Mutual labels:  development-environment
nixify
Bootstrap nix-shell environments
Stars: ✭ 25 (+92.31%)
Mutual labels:  development-environment
Koding
The Simplest Way to Manage Your Entire Dev Infrastructure!
Stars: ✭ 1,945 (+14861.54%)
Mutual labels:  development-environment
Dojo
Containerize your development and operations environment
Stars: ✭ 240 (+1746.15%)
Mutual labels:  development-environment
X0
Document & develop React components without breaking a sweat
Stars: ✭ 1,706 (+13023.08%)
Mutual labels:  development-environment
Pyiron
pyiron - an integrated development environment (IDE) for computational materials science.
Stars: ✭ 153 (+1076.92%)
Mutual labels:  development-environment
Gulp Pug Starter
Frontend development with pleasure. Pug + SCSS version
Stars: ✭ 228 (+1653.85%)
Mutual labels:  development-environment
Dotfiles
personal development settings
Stars: ✭ 130 (+900%)
Mutual labels:  development-environment
Peanut
🐺 Deploy Databases and Services Easily for Development and Testing Pipelines.
Stars: ✭ 696 (+5253.85%)
Mutual labels:  containerization
Torchbear
🔥🐻 The Speakeasy Scripting Engine Which Combines Speed, Safety, and Simplicity
Stars: ✭ 128 (+884.62%)
Mutual labels:  development-environment
Meta Environment
A collection of scripts that provision the official WordPress.org websites into a Varying Vagrant Vagrants installation.
Stars: ✭ 181 (+1292.31%)
Mutual labels:  development-environment
laptop
💻 Handy Dandy macOS Environment Setup
Stars: ✭ 41 (+215.38%)
Mutual labels:  development-environment
vs-code-container-with-ssl
Launch your own Code Server container with preloaded SDKs for React, Python, C#, Cloud CLIs, secured by SSL Reverse Proxy.
Stars: ✭ 54 (+315.38%)
Mutual labels:  code-server
Docker Mastery For Nodejs
Docker Mastery for Node.js Projects, From a Docker Captain
Stars: ✭ 231 (+1676.92%)
Mutual labels:  development-environment

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].