mirror of
				https://github.com/mitchell/shortnr.git
				synced 2025-10-31 13:15:25 +00:00 
			
		
		
		
	Add vagrant config and remove dev dockerfile
This commit is contained in:
		
							parent
							
								
									a021daf62f
								
							
						
					
					
						commit
						4750555cf8
					
				
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -33,3 +33,6 @@ urls | ||||||
| *.tfstate.backup | *.tfstate.backup | ||||||
| *.tfvars | *.tfvars | ||||||
| .terraform/ | .terraform/ | ||||||
|  | 
 | ||||||
|  | # Vagrant state files | ||||||
|  | .vagrant/ | ||||||
|  |  | ||||||
|  | @ -1,11 +0,0 @@ | ||||||
| FROM elixir:1.10 as dev |  | ||||||
| 
 |  | ||||||
| WORKDIR /shortnr |  | ||||||
| 
 |  | ||||||
| RUN apt-get update |  | ||||||
| RUN apt-get install -y fish vim rsync |  | ||||||
| 
 |  | ||||||
| RUN mix local.hex --force |  | ||||||
| RUN mix local.rebar --force |  | ||||||
| 
 |  | ||||||
| CMD ["sleep", "infinity"] |  | ||||||
							
								
								
									
										187
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								Vagrantfile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,187 @@ | ||||||
|  | # -*- mode: ruby -*- | ||||||
|  | # vim: ft=ruby foldmethod=indent | ||||||
|  | 
 | ||||||
|  | # frozen_string_literal: true | ||||||
|  | 
 | ||||||
|  | # All Vagrant configuration is done below. The "2" in Vagrant.configure | ||||||
|  | # configures the configuration version. Please don't change it unless you know | ||||||
|  | # what you're doing. | ||||||
|  | Vagrant.configure('2') do |config| # rubocop:disable Metrics/BlockLength | ||||||
|  |   config.vm.define 'dev' do |dev| # rubocop:disable Metrics/BlockLength | ||||||
|  |     dev.vm.box = 'debian/buster64' | ||||||
|  | 
 | ||||||
|  |     dev.vm.network 'forwarded_port', guest: 8080, host: 8080 | ||||||
|  |     dev.vm.network 'private_network', ip: '192.168.50.11' | ||||||
|  | 
 | ||||||
|  |     dev.vm.provider 'virtualbox' do |vb| | ||||||
|  |       vb.memory = '2048' | ||||||
|  |       vb.cpus = 4 | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     dev.vm.synced_folder '.', '/vagrant', type: 'rsync', | ||||||
|  |                                           rsync__exclude: [ | ||||||
|  |                                             '*.ez', | ||||||
|  |                                             '*.out', | ||||||
|  |                                             '*.tfstate', | ||||||
|  |                                             '*.tfstate.backup', | ||||||
|  |                                             '*.tfvars', | ||||||
|  |                                             '.elixir_ls/', | ||||||
|  |                                             '.fetch', | ||||||
|  |                                             '.terraform/', | ||||||
|  |                                             '_build/', | ||||||
|  |                                             'cover/', | ||||||
|  |                                             'deps/', | ||||||
|  |                                             'doc/', | ||||||
|  |                                             'erl_crash.dump', | ||||||
|  |                                             'service-*.tar' | ||||||
|  |                                           ] | ||||||
|  | 
 | ||||||
|  |     dev.vm.provision 'shell', inline: <<-SHELL | ||||||
|  |       ### personal ### | ||||||
|  |       # deps for my dotfiles | ||||||
|  |       apt-get update | ||||||
|  |       apt-get install -y git curl rsync | ||||||
|  | 
 | ||||||
|  |       ### fish shell ### | ||||||
|  |       # deps for installing fish | ||||||
|  |       apt-get install -y wget gpg | ||||||
|  | 
 | ||||||
|  |       # adding the fish repo and installing fish | ||||||
|  |       echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' > /etc/apt/sources.list.d/shells:fish:release:3.list | ||||||
|  |       wget -nv https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key -O Release.key | ||||||
|  |       apt-key add - < Release.key | ||||||
|  |       rm Release.key | ||||||
|  |       apt-get update | ||||||
|  |       apt-get install -y fish | ||||||
|  | 
 | ||||||
|  |       # change vagrant user's default shell to fish | ||||||
|  |       chsh -s /usr/bin/fish vagrant | ||||||
|  | 
 | ||||||
|  |       ### docker ### | ||||||
|  |       # deps for docker | ||||||
|  |       apt-get install -y \ | ||||||
|  |         apt-transport-https ca-certificates curl \ | ||||||
|  |         gnupg2 software-properties-common | ||||||
|  | 
 | ||||||
|  |       # install docker-ce | ||||||
|  |       curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add - | ||||||
|  |       add-apt-repository \ | ||||||
|  |         "deb [arch=amd64] https://download.docker.com/linux/debian \ | ||||||
|  |         $(lsb_release -cs) \ | ||||||
|  |         stable" | ||||||
|  |       apt-get update | ||||||
|  |       apt-get install -y docker-ce docker-ce-cli containerd.io | ||||||
|  | 
 | ||||||
|  |       # install docker-compose | ||||||
|  |       curl -L "https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose | ||||||
|  |       chmod +x /usr/local/bin/docker-compose | ||||||
|  | 
 | ||||||
|  |       # add vagrant user to docker group | ||||||
|  |       adduser vagrant docker | ||||||
|  | 
 | ||||||
|  |       ### asdf-vm ### | ||||||
|  |       # deps for asdf-vm | ||||||
|  |       apt-get install -y \ | ||||||
|  |         automake autoconf libreadline-dev \ | ||||||
|  |         libncurses-dev libssl-dev libyaml-dev \ | ||||||
|  |         libxslt-dev libffi-dev libtool \ | ||||||
|  |         unixodbc-dev unzip curl | ||||||
|  | 
 | ||||||
|  |       # deps for asdf-erlang | ||||||
|  |       apt-get install -y \ | ||||||
|  |         build-essential autoconf m4 \ | ||||||
|  |         libncurses5-dev libwxgtk3.0-dev libgl1-mesa-dev \ | ||||||
|  |         libglu1-mesa-dev libpng-dev libssh-dev \ | ||||||
|  |         unixodbc-dev xsltproc fop | ||||||
|  |     SHELL | ||||||
|  | 
 | ||||||
|  |     dev.vm.provision 'shell', privileged: false, inline: <<-SHELL | ||||||
|  |       ### personal ### | ||||||
|  |       # run my dotfiles sync script | ||||||
|  |       curl -L mjfs.us/sync | fish | ||||||
|  | 
 | ||||||
|  |       ### asdf-vm ### | ||||||
|  |       # install asdf vm | ||||||
|  |       git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.7 | ||||||
|  |       echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish | ||||||
|  |       cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions | ||||||
|  | 
 | ||||||
|  |       # install various tools/languages with asdf | ||||||
|  |       . $HOME/.asdf/asdf.sh | ||||||
|  |       export PATH=$PATH:$HOME/.asdf/bin/ | ||||||
|  | 
 | ||||||
|  |       asdf plugin add neovim | ||||||
|  |       asdf install neovim 0.4.3 | ||||||
|  |       asdf global neovim 0.4.3 | ||||||
|  | 
 | ||||||
|  |       asdf plugin add erlang | ||||||
|  |       asdf install erlang 22.3 | ||||||
|  |       asdf global erlang 22.3 | ||||||
|  | 
 | ||||||
|  |       asdf plugin add elixir | ||||||
|  |       asdf install elixir 1.10.2-otp-22 | ||||||
|  |       asdf global elixir 1.10.2-otp-22 | ||||||
|  |     SHELL | ||||||
|  |   end | ||||||
|  | 
 | ||||||
|  |   config.vm.define 'prod' do |prod| | ||||||
|  |     prod.vm.box = 'debian/buster64' | ||||||
|  | 
 | ||||||
|  |     prod.vm.network 'forwarded_port', guest: 8080, host: 8888 | ||||||
|  |     prod.vm.network 'private_network', ip: '192.168.50.10' | ||||||
|  | 
 | ||||||
|  |     prod.vm.provider 'virtualbox' do |vb| | ||||||
|  |       vb.memory = '2048' | ||||||
|  |       vb.cpus = 4 | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     prod.vm.synced_folder '.', '/vagrant', disabled: true | ||||||
|  | 
 | ||||||
|  |     prod.vm.provision 'shell', inline: <<-SHELL | ||||||
|  |       ### personal ### | ||||||
|  |       # deps for my dotfiles | ||||||
|  |       apt-get update | ||||||
|  |       apt-get install -y git curl rsync | ||||||
|  | 
 | ||||||
|  |       ### fish shell ### | ||||||
|  |       # deps for installing fish | ||||||
|  |       apt-get install -y wget gpg | ||||||
|  | 
 | ||||||
|  |       # adding the fish repo and installing fish | ||||||
|  |       echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' > /etc/apt/sources.list.d/shells:fish:release:3.list | ||||||
|  |       wget -nv https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key -O Release.key | ||||||
|  |       apt-key add - < Release.key | ||||||
|  |       rm Release.key | ||||||
|  |       apt-get update | ||||||
|  |       apt-get install -y fish | ||||||
|  | 
 | ||||||
|  |       ### asdf-vm ### | ||||||
|  |       # deps for asdf-vm | ||||||
|  |       apt-get install -y \ | ||||||
|  |         automake autoconf libreadline-dev \ | ||||||
|  |         libncurses-dev libssl-dev libyaml-dev \ | ||||||
|  |         libxslt-dev libffi-dev libtool \ | ||||||
|  |         unixodbc-dev unzip curl | ||||||
|  |     SHELL | ||||||
|  | 
 | ||||||
|  |     prod.vm.provision 'shell', privileged: false, inline: <<-SHELL | ||||||
|  |       ### personal ### | ||||||
|  |       # run my dotfiles sync script | ||||||
|  |       curl -L mjfs.us/sync | fish | ||||||
|  | 
 | ||||||
|  |       ### asdf-vm ### | ||||||
|  |       # install asdf vm | ||||||
|  |       git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.7.7 | ||||||
|  |       echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish | ||||||
|  |       cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions | ||||||
|  | 
 | ||||||
|  |       # install various tools/languages with asdf | ||||||
|  |       . $HOME/.asdf/asdf.sh | ||||||
|  |       export PATH=$PATH:$HOME/.asdf/bin/ | ||||||
|  | 
 | ||||||
|  |       asdf plugin add neovim | ||||||
|  |       asdf install neovim 0.4.3 | ||||||
|  |       asdf global neovim 0.4.3 | ||||||
|  |     SHELL | ||||||
|  |   end | ||||||
|  | end | ||||||
							
								
								
									
										13
									
								
								mix.exs
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								mix.exs
									
									
									
									
									
								
							|  | @ -10,7 +10,13 @@ defmodule Shortnr.MixProject do | ||||||
|       start_permanent: Mix.env() == :prod, |       start_permanent: Mix.env() == :prod, | ||||||
|       dialyzer: [ignore_warnings: "dialyzer.ignore-warnings"], |       dialyzer: [ignore_warnings: "dialyzer.ignore-warnings"], | ||||||
|       deps: deps(), |       deps: deps(), | ||||||
|       aliases: aliases() |       aliases: aliases(), | ||||||
|  |       releases: [ | ||||||
|  |         shortnr: [ | ||||||
|  |           include_executables_for: [:unix], | ||||||
|  |           applications: [shortnr: :permanent] | ||||||
|  |         ] | ||||||
|  |       ] | ||||||
|     ] |     ] | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|  | @ -37,7 +43,6 @@ defmodule Shortnr.MixProject do | ||||||
|   defp aliases do |   defp aliases do | ||||||
|     [ |     [ | ||||||
|       build: &docker_build/1, |       build: &docker_build/1, | ||||||
|       "build.dev": &docker_build_dev/1, |  | ||||||
|       lint: ["compile", "dialyzer", "credo --strict"], |       lint: ["compile", "dialyzer", "credo --strict"], | ||||||
|       "infra.apply": &infra_apply/1, |       "infra.apply": &infra_apply/1, | ||||||
|       "infra.plan": &infra_plan/1, |       "infra.plan": &infra_plan/1, | ||||||
|  | @ -64,8 +69,4 @@ defmodule Shortnr.MixProject do | ||||||
|   defp docker_build(_) do |   defp docker_build(_) do | ||||||
|     0 = Mix.shell().cmd("docker build -t shortnr:latest .") |     0 = Mix.shell().cmd("docker build -t shortnr:latest .") | ||||||
|   end |   end | ||||||
| 
 |  | ||||||
|   defp docker_build_dev(_) do |  | ||||||
|     0 = Mix.shell().cmd("docker build -t shortnr_dev:latest -f ./Dockerfile.dev .") |  | ||||||
|   end |  | ||||||
| end | end | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue