SHELL := bash # .SHELLFLAGS := -eu -x -o pipefail -c .SHELLFLAGS := -eu -o pipefail -c .ONESHELL: .DELETE_ON_ERROR: MAKEFLAGS += --warn-undefined-variables MAKEFLAGS += --no-builtin-rules ROOT_DIR := $(CURDIR) ISO_URL := https://github.com/vyos/vyos-nightly-build/releases/download/1.5-rolling-202411030007/vyos-1.5-rolling-202411030007-generic-amd64.iso .PHONY: default default: curl .PHONY: container container: container .PHONY: curl curl: container curl -k --request POST 'https://localhost:8443/configure' --form data='{ "op": "set", "path": [ "service", "ntp", "server", "time1.vyos.net", "prefer" ] }' --form key='MySuperSecretKey' vyos.iso: @echo -e "\n\n###########################################################################" echo Make vyos.iso wget -O vyos.iso "${ISO_URL}" touch vyos.iso filesystem.squashfs: vyos.iso @echo -e "\n\n###########################################################################" echo Make filesystem.squashfs rm -f filesystem.squashfs xorriso -osirrox on -indev vyos.iso -extract /live/filesystem.squashfs filesystem.squashfs touch filesystem.squashfs container-img: filesystem.squashfs @echo -e "\n\n###########################################################################" echo Make vyos-unsquashfs sudo rm -rf vyos-unsquashfs || true mkdir -p vyos-unsquashfs sudo unsquashfs -f -d "vyos-unsquashfs" -excludes filesystem.squashfs /dev sudo touch vyos-unsquashfs sudo tar -C vyos-unsquashfs -c . | docker import - "vyos:latest" touch container-img sudo rm -rf vyos-unsquashfs container: container-img container-setup-api.vbash @echo -e "\n\n###########################################################################" echo Make container set -x until [ -z "$$(docker ps -f "name=vyos" -q)" ]; do docker stop vyos sleep 5 done bash -c "touch container; docker run --rm --name vyos --privileged --network=bridge -p 8443:443 "vyos:latest" /sbin/init; rm -f container" & sleep 5 s=5; for i in {1..5}; do [ -n "$$(docker ps -f "name=vyos" -q)" ] && s=0 && break || s=$$? && sleep 5; done; [ $$s -eq 0 ] set +x docker cp container-setup-api.vbash vyos:/container-setup-api.vbash docker exec -t vyos chmod +x /container-setup-api.vbash docker exec -t vyos /container-setup-api.vbash docker inspect --format json --type container vyos | jq -r '.[].NetworkSettings.IPAddress'