From 6966c5d45f050e560297b566826d144c7590ac6b Mon Sep 17 00:00:00 2001 From: Paul Mathieu Date: Wed, 12 Feb 2025 19:07:26 +0100 Subject: [PATCH] Dockerize skycraft --- Dockerfile | 24 ++++++++++++++++++++++++ Makefile | 31 +++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 Dockerfile create mode 100644 Makefile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6751a20 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM node:23-alpine as skycraft-deps + +WORKDIR /workspace/skycraft +ADD ./skycraft/package.json ./ +ADD ./skycraft/yarn.lock ./ +RUN yarn install + + +FROM skycraft-deps as skycraft-build + +ADD . /workspace +RUN yarn build + + +FROM skycraft-deps as skycraft-dev + +ENTRYPOINT ["yarn"] +CMD ["run", "serve"] + + +FROM scratch as skycraft-export + +COPY --from=skycraft-build /workspace/skycraft/app.js / +COPY --from=skycraft-build /workspace/skycraft/static/* / diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a4d294b --- /dev/null +++ b/Makefile @@ -0,0 +1,31 @@ +export DOCKER_BUILDKIT=1 + +skycraft-dev-image := skycraft-dev + +.PHONY: skycraft +skycraft: ## build skycraft + docker build \ + --output=out/skycraft \ + --target=skycraft-export \ + . + +.PHONY: skycraft-dev-image +skycraft-dev-image: + docker build \ + -t $(skycraft-dev-image) \ + --target=skycraft-dev \ + . + +.PHONY: skycraft-dev +skycraft-dev: skycraft-dev-image + docker run -it --rm \ + -v .:/workspace \ + -v /workspace/skycraft/node_modules \ + -p 8000:8000 \ + $(skycraft-dev-image) + +.PHONY: help +help: ## Show this help + @echo Noteworthy targets: + @egrep '^[a-zA-Z_-]+:.*?## .*$$' $(firstword $(MAKEFILE_LIST)) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' +.DEFAULT_GOAL := help