diff options
Diffstat (limited to 'test/legal/docker_license_analysis/Vagrantfile')
-rw-r--r-- | test/legal/docker_license_analysis/Vagrantfile | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/test/legal/docker_license_analysis/Vagrantfile b/test/legal/docker_license_analysis/Vagrantfile new file mode 100644 index 000000000..f1123ff8f --- /dev/null +++ b/test/legal/docker_license_analysis/Vagrantfile @@ -0,0 +1,107 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +VM_MEMORY = 2 * 1024 +VM_CPUS = 2 +VM_DISK = 128 +VM_STORAGE_POOL = "default" +VM_USER = "vagrant" + +# Dockerfile to analyse +DOCKER_FILE = ENV["DOCKER_FILE_ANALYSE"] || "Dockerfile.sample" +DOCKER_FILE_PATH = "/home/vagrant/ternvenv/Dockerfile" +# Docker image to analyse (in form of "debian:latest"). +# Takes precedence over DOCKER_FILE +DOCKER_IMAGE = ENV['DOCKER_IMAGE_ANALYSE'] + +$install_docker= <<-SCRIPT + apt-get update + apt-get install --yes \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg-agent \ + software-properties-common + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - + add-apt-repository \ + "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ + $(lsb_release -cs) \ + stable" + apt-get update + apt-get install --yes \ + docker-ce docker-ce-cli containerd.io + groupadd -f docker + usermod -a -G docker $USER +SCRIPT + +$install_python = <<-SCRIPT + # TODO: currently scancode locks us to python3.6, they are currently + # (10 Dec 2020) updating so check in a while + add-apt-repository ppa:deadsnakes/ppa + apt-get update + apt-get install --yes \ + python3.6 libpython3.6-dev python3-pip python3.6-venv python3-setuptools\ + python3-apt \ + attr bzip2 xz-utils zlib1g libxml2-dev libxslt1-dev \ + findutils git gnupg2 tar util-linux + update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 + update-alternatives --set python3 /usr/bin/python3.6 + pip3 install --upgrade pip +SCRIPT + +$install_tern = <<-SCRIPT + cd /home/$USER + python3 -m venv ternvenv + cd ternvenv + source bin/activate + pip3 install --upgrade pip + pip3 install --no-cache-dir tern scancode-toolkit[full] +SCRIPT + +Vagrant.configure("2") do |config| + config.vm.box = "generic/ubuntu2004" + config.vm.hostname = "vagrant" + + config.vm.provider :virtualbox do |v| + v.name = config.vm.hostname + v.memory = VM_MEMORY + v.cpus = VM_CPUS + end + + config.vm.provider :libvirt do |v| + v.memory = VM_MEMORY + v.cpus = VM_CPUS + v.machine_virtual_size = VM_DISK + v.storage_pool_name = VM_STORAGE_POOL + end + + config.vm.synced_folder '.', '/vagrant', disabled: true + + config.vm.provision "install_docker", type: "shell" do |s| + s.privileged = true + s.env = {"DEBIAN_FRONTEND" => "noninteractive", "USER":VM_USER} + s.inline = $install_docker + s.reset = true + end + + config.vm.provision "install_python", type: "shell" do |s| + s.privileged = true + s.env = {"DEBIAN_FRONTEND" => "noninteractive"} + s.inline = $install_python + end + + config.vm.provision "install_tern", type: "shell" do |s| + s.privileged = false + s.env = {"USER":VM_USER} + s.inline = $install_tern + end + + # Add the Dockerfile for analysis to the Vagrant box + config.vm.provision "file", source: DOCKER_FILE, destination: DOCKER_FILE_PATH + + config.vm.provision "license_analysis", type: "shell" do |s| + s.privileged = false + s.env = {"IMAGE":DOCKER_IMAGE, "FILE":DOCKER_FILE_PATH} + s.path = "tools/analysis.sh" + end +end |