mirror of https://github.com/mitchell/shortnr.git
Add vagrant config and remove dev dockerfile
This commit is contained in:
parent
a021daf62f
commit
4750555cf8
|
@ -33,3 +33,6 @@ urls
|
|||
*.tfstate.backup
|
||||
*.tfvars
|
||||
.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"]
|
|
@ -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,
|
||||
dialyzer: [ignore_warnings: "dialyzer.ignore-warnings"],
|
||||
deps: deps(),
|
||||
aliases: aliases()
|
||||
aliases: aliases(),
|
||||
releases: [
|
||||
shortnr: [
|
||||
include_executables_for: [:unix],
|
||||
applications: [shortnr: :permanent]
|
||||
]
|
||||
]
|
||||
]
|
||||
end
|
||||
|
||||
|
@ -37,7 +43,6 @@ defmodule Shortnr.MixProject do
|
|||
defp aliases do
|
||||
[
|
||||
build: &docker_build/1,
|
||||
"build.dev": &docker_build_dev/1,
|
||||
lint: ["compile", "dialyzer", "credo --strict"],
|
||||
"infra.apply": &infra_apply/1,
|
||||
"infra.plan": &infra_plan/1,
|
||||
|
@ -64,8 +69,4 @@ defmodule Shortnr.MixProject do
|
|||
defp docker_build(_) do
|
||||
0 = Mix.shell().cmd("docker build -t shortnr:latest .")
|
||||
end
|
||||
|
||||
defp docker_build_dev(_) do
|
||||
0 = Mix.shell().cmd("docker build -t shortnr_dev:latest -f ./Dockerfile.dev .")
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue