aboutsummaryrefslogtreecommitdiffstats
path: root/Dockerfile
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-02-06 20:10:31 +0200
committerJan Tuomi <jans.tuomi@gmail.com>2022-02-06 20:10:31 +0200
commit37d5f09c2a7a335f5111663edea95f053eaa08b0 (patch)
tree01561b3ffaad197d99e1f770fb88b45c2e0e4093 /Dockerfile
Initial commit
Diffstat (limited to 'Dockerfile')
-rw-r--r--Dockerfile23
1 files changed, 23 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..75eecae
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+FROM fossa/haskell-static-alpine:ghc-8.10.4 AS build
+
+ARG SLAM_GIT_REPO=https://github.com/jantuomi/slam-interpreter.git
+ARG SLAM_GIT_CHECKOUT=main
+
+RUN cabal update
+RUN git clone $SLAM_GIT_REPO /slam
+WORKDIR /slam
+RUN git checkout $SLAM_GIT_CHECKOUT
+RUN ls src && cabal build --enable-executable-static
+RUN mv $(cabal list-bin slam-interpreter) ./interpreter
+
+FROM node:16-alpine AS serve
+
+ENV NODE_ENV production
+ENV PORT 8080
+
+WORKDIR /app
+COPY package.json package-lock.json ./
+RUN npm ci --only-prod
+COPY --from=build /slam/interpreter ./
+COPY src ./src
+CMD ["npm", "start"]