/open-development-environment-devbox

An automatically provisioned and configured virtual machine serving as a development box

Primary LanguageShellApache License 2.0Apache-2.0

Open Development Environment: Devbox

  • Master branch: Build Status Build Status

A Vagrant box serving as a development machine. It's automatically built using Packer and Ansible. Read the related blog post.

Part of the Open Development Environment Project.

Changelog

For a list of changes, have a look at the changelog

Dependencies

These are the dependencies required to run the box:

  • Vagrant 2.0.3+
  • Virtualbox 5.2.8+

How to Run

To use the box:

  1. Install the dependencies
  2. Run vagrant init ferrarimarco/open-development-environment-devbox to initialize a Vagrantfile for this box
  3. Run vagrant up

Credentials

There is a vagrant user already configured, password: vagrant

What's inside the box

This "development box" is based on Ubuntu with an XFCE Desktop environment and includes the following tools, ready to be used:

Bash aliases

The following aliases are automatically set up during the provisioning process:

  • changelog-generator: to run Github Changelog Generator
  • docker-clean: to run docker-clean
  • dockerfile-lint: to run hadolint and dockerlint on every Dockerfile in the current directory and its subdirectories
  • git-log1, git-log2, git-log3: see open-development-environment-git for details
  • pgadmin4: to start a container running pgAdmin4 in single user mode and then open a browser window pointing to it. Data is saved in an external volume mapped to /home/vagrant/.pgadmin4
  • psscriptanalyzer: to run PSScriptAnalyzer on every Powershell script in the current directory and its subdirectories
  • shellcheck: to run Shellcheck on every shell script in the current directory and its subdirectories

Example Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "ferrarimarco/open-development-environment-devbox"
  config.vm.network "private_network", type: "dhcp"

  config.vm.provider "virtualbox" do |v|
    v.customize ["modifyvm", :id, "--cpus", 4]
    v.customize ["modifyvm", :id, "--clipboard", "bidirectional"]
    v.customize ["modifyvm", :id, "--memory", 4096]
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    v.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
    v.customize ["modifyvm", :id, "--vram", "128"] # 10 MB is the minimum to enable Virtualbox seamless mode

    # Display the VirtualBox GUI
    v.gui = true
  end
end

Contributions

If you have suggestions, please create a new GitHub issue or pull request.

Manual Build

Dependencies

  • runtime dependencies listed above
  • GNU Make 4.1+
  • Packer 1.2.1+

Build

  1. Install the dependencies
  2. Clone the repository
  3. Run make

Testing

Dependencies

  • Bundler 1.13.0+
  • Ruby 2.3.0+
  • Docker 1.12.0+
  • See Gemfile

Setup

Ssee .travis.yml

Manual Downloads

Due to licensing reasons, we cannot include the SQL Developer setup package. Download it manually from Oracle Website and place it in provisioning/downloads/ and update sql_developer_path value in the variables section of the template (or provide your own variables file).