Use SudoVanilla Ark as where to get image and use Bun over NodeJS for faster builds
This commit is contained in:
parent
e10ec48209
commit
5b6b9aff32
1 changed files with 35 additions and 23 deletions
58
Dockerfile
58
Dockerfile
|
@ -1,27 +1,39 @@
|
||||||
# This file is based on the example provided in Astro's documentation:
|
#########################################################
|
||||||
# https://docs.astro.build/en/recipes/docker/#multi-stage-build-using-ssr
|
# SudoVanilla will never use images from Docker Hub, as #
|
||||||
FROM node:lts AS base
|
# Docker Hub is proprietary. SudoVanilla hosts slim #
|
||||||
|
# versions of Bun's Docker image on SudoVanilla Ark. #
|
||||||
|
#########################################################
|
||||||
|
|
||||||
|
#########################################################
|
||||||
|
# Other locations to download the image is available #
|
||||||
|
# #
|
||||||
|
# Codeberg: #
|
||||||
|
# codeberg.org/korbs/bun:amd64 #
|
||||||
|
# codeberg.org/korbs/bun:arm64 #
|
||||||
|
# #
|
||||||
|
# Quay: #
|
||||||
|
# quay.io/sudovanilla/bun:amd64 #
|
||||||
|
# quay.io/sudovanilla/bun:arm64 #
|
||||||
|
# #
|
||||||
|
#########################################################
|
||||||
|
|
||||||
|
# Base
|
||||||
|
## For AMD64 Servers:
|
||||||
|
FROM ark.sudovanilla.org/korbs/bun:amd64 as based
|
||||||
|
## For ARM64 Servers:
|
||||||
|
## FROM ark.sudovanilla.org/korbs/bun:arm64 as based
|
||||||
|
|
||||||
|
# Copy Files
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# By copying only the package.json and package-lock.json here, we ensure that the following `-deps` steps are independent of the source code.
|
|
||||||
# Therefore, the `-deps` steps will be skipped if only the source code changes.
|
|
||||||
COPY package.json package-lock.json ./
|
|
||||||
|
|
||||||
FROM base AS prod-deps
|
|
||||||
RUN npm install --omit=dev
|
|
||||||
|
|
||||||
FROM base AS build-deps
|
|
||||||
RUN npm install
|
|
||||||
|
|
||||||
FROM build-deps AS build
|
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN npm run build
|
|
||||||
|
|
||||||
FROM base AS runtime
|
# Run in Production
|
||||||
COPY --from=prod-deps /app/node_modules ./node_modules
|
ENV NODE_ENV=production
|
||||||
COPY --from=build /app/dist ./dist
|
|
||||||
|
|
||||||
ENV HOST=0.0.0.0
|
# Build
|
||||||
ENV PORT=4321
|
RUN bun run build
|
||||||
EXPOSE 4321
|
|
||||||
CMD node ./dist/server/entry.mjs
|
# Run
|
||||||
|
USER bun
|
||||||
|
EXPOSE 2014/tcp
|
||||||
|
CMD bun ./dist/server/entry.mjs
|
Loading…
Reference in a new issue