diff options
author | Alan Pearce | 2023-09-14 11:40:17 +0200 |
---|---|---|
committer | Alan Pearce | 2023-09-15 19:24:52 +0200 |
commit | 02abf6ebb5ac4979537ee52ccdc93a4f29820cea (patch) | |
tree | 62b352dcae0e615e7404d91e8788e941f5338710 /Dockerfile | |
parent | 75041215b306fd5b7e7a86c2b0f35e5590010dea (diff) | |
download | website-02abf6ebb5ac4979537ee52ccdc93a4f29820cea.tar.lz website-02abf6ebb5ac4979537ee52ccdc93a4f29820cea.tar.zst website-02abf6ebb5ac4979537ee52ccdc93a4f29820cea.zip |
Build with docker
Diffstat (limited to 'Dockerfile')
-rw-r--r-- | Dockerfile | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..79533e9 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,60 @@ +# syntax = docker/dockerfile:1 + +# Adjust BUN_VERSION as desired +ARG BUN_VERSION=0.8.1 +ARG ZOLA_VERSION=0.17.1 +FROM oven/bun:${BUN_VERSION} as base + +LABEL fly_launch_runtime="Bun" + +# Bun app lives here +WORKDIR /app + +# Set production environment +ENV NODE_ENV="production" + +# Throw-away build stage to reduce size of final image +FROM base as build + +# # Install packages needed to build node modules +# RUN apt-get update -qq && \ +# apt-get install -y build-essential pkg-config python-is-python3 + +# Install node modules +COPY --link bun.lockb package.json ./ +RUN bun install --ci + +# Copy application code +COPY --link src src + +FROM ghcr.io/getzola/zola:v${ZOLA_VERSION} as ssg + +WORKDIR /web + +COPY --link website ./ + +RUN [ "zola", "build", "--force" ] + +FROM alpine:edge as postprocess + +WORKDIR /web + +RUN echo "@testing https://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories + +RUN apk add --no-cache prettier@testing make fd brotli gzip zstd + +COPY --from=ssg /web ./ + +RUN make -j4 format compress + +# Final stage for app image +FROM base + +# Copy built application +COPY --from=build /app /app +COPY --from=postprocess /web/ /app/website + +# Start the server by default, this can be overwritten at runtime +EXPOSE 3000 +EXPOSE 9091 +CMD [ "bun", "run", "src/index.ts" ] |