From 6f0d9fe9259c2dbc68622d8db49af8fde92171d4 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Sat, 28 Sep 2024 21:10:51 +0200 Subject: [PATCH] ci: add Dockerfile and docker build for api --- bun.lockb | Bin 313776 -> 323216 bytes ci/docker/api/Dockerfile | 11 +++++++++++ package.json | 5 ++++- 3 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 ci/docker/api/Dockerfile diff --git a/bun.lockb b/bun.lockb index d47cf63092f19689592a902a2a1c2897cf5dd600..6f227880f68354576c6793bf9b903ff6c9dd4f71 100755 GIT binary patch delta 53606 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 delta 47411 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 diff --git a/ci/docker/api/Dockerfile b/ci/docker/api/Dockerfile new file mode 100644 index 0000000..60252bd --- /dev/null +++ b/ci/docker/api/Dockerfile @@ -0,0 +1,11 @@ +FROM oven/bun:1 + +COPY ./build/api . + +ENV HOST=0.0.0.0 +ENV PORT=3000 + +USER bun +EXPOSE 3000/tcp + +ENTRYPOINT [ "bun", "run", "index.js" ] diff --git a/package.json b/package.json index 365a74c..4a1637b 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,10 @@ "build": "bun --filter '*' build", "docker:website:build": "docker build -t git.hashdot.co/boring.tools/boring.tools/website -f ci/docker/website/Dockerfile .", "docker:website:push": "docker push git.hashdot.co/boring.tools/boring.tools/website", - "docker:website": "bun docker:website:build && bun docker:website:push" + "docker:website": "bun docker:website:build && bun docker:website:push", + "docker:api:build": "docker build -t git.hashdot.co/boring.tools/boring.tools/api -f ci/docker/api/Dockerfile .", + "docker:api:push": "docker push git.hashdot.co/boring.tools/boring.tools/api", + "docker:api": "bun docker:api:build && bun docker:api:push" }, "packageManager": "bun@1.1.29", "workspaces": [