PROJ = api.dummy.kevinnlsamuel.com ifndef PROJ $(error variable $$PROJ needs to be defined) endif POD_MOUNTS = \ -w /app \ -v $(PWD):/app:z \ -v pnpm-global:/usr/local:z \ -v pnpm-store:/usr/local/share/pnpm:z \ -v pnpm-config:/root/.config/pnpm:z \ -v $(PROJ)_modules:/app/node_modules:z POD_OPTIONS_TEMPLATE = \ --interactive --tty \ --rm \ --name $(PROJ)_$(CONTAINER_TAG) \ $(POD_MOUNTS) $(EXTRA_FLAGS) \ node:alpine serve: EXTRA_FLAGS = --publish 3000:3000 serve: SCRIPT = serve serve: run dev: EXTRA_FLAGS = --publish 3000:3000 dev: SCRIPT = dev dev: run run: CONTAINER_TAG = $(firstword $(SCRIPT)) run: podman run $(POD_OPTIONS_TEMPLATE) pnpm run $(SCRIPT) setup: SCRIPT = setup setup: podman run $(POD_OPTIONS_TEMPLATE) sh -c 'command -v pnpm || npm install -g pnpm' podman run $(POD_OPTIONS_TEMPLATE) pnpm config set store-dir /usr/local/share/pnpm --global podman run $(POD_OPTIONS_TEMPLATE) pnpm install sh: CONTAINER_TAG = sh sh: podman run $(POD_OPTIONS_TEMPLATE) sh