Browse Source

Add dev Dockerfile and move env vars into Docker containers

master
buttercat1791 1 year ago
parent
commit
ea1ba60770
  1. 3
      .env
  2. 4
      .env.development
  3. 3
      .env.local
  4. 2
      .gitignore
  5. 43
      Dockerfile.dev
  6. 3
      Dockerfile.prod

3
.env

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
ALEX_HOST=127.0.0.1
ALEX_PORT=3040
ALEX_ORIGIN=https://alexandria.gitcitadel.eu

4
.env.development

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
ALEX_HOST=127.0.0.1
ALEX_PORT=3040
ALEX_ORIGIN=https://next-alexandria.gitcitadel.eu

3
.env.local

@ -1,3 +0,0 @@ @@ -1,3 +0,0 @@
ALEX_HOST=127.0.0.1
ALEX_PORT=3040
ALEX_ORIGIN=http://localhost:3040

2
.gitignore vendored

@ -3,6 +3,8 @@ node_modules @@ -3,6 +3,8 @@ node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

43
Dockerfile.dev

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
# Dockerfile for production deployments of Alexandria.
# Based on the Bun Docker guide: https://bun.sh/guides/ecosystem/docker.
# Use the official Bun image
FROM oven/bun:1 AS base
WORKDIR /usr/src/app
# Install dependencies into temp directory.
# This will cache them and speed up future builds.
FROM base AS install
RUN mkdir -p /temp/dev
COPY package.json bun.lock /temp/dev/
RUN cd /temp/dev && bun install --frozen-lockfile
# Install with --production (exclude devDependencies)
RUN mkdir -p /temp/prod
COPY package.json bun.lock /temp/prod/
RUN cd /temp/prod && bun install --frozen-lockfile --production
# Copy node_modules from temp directory.
# Then copy all (non-ignored) project files into the image.
FROM base AS prerelease
COPY --from=install /temp/dev/node_modules node_modules
COPY . .
# [Optional] Tests & build.
ENV NODE_ENV=development
ENV ALEX_HOST=127.0.0.1
ENV ALEX_PORT=3040
ENV ALEX_ORIGIN=https://next-alexandria.gitcitadel.eu
RUN bun test
RUN bun run build
# Copy production dependencies and source code into final image.
FROM base AS release
COPY --from=install /temp/prod/node_modules node_modules
COPY --from=prerelease /usr/src/app/index.ts .
COPY --from=prerelease /usr/src/app/package.json .
# Run the app.
USER bun
EXPOSE 3040/tcp
ENTRYPOINT [ "bun", "run", "index.ts" ]

3
Dockerfile.prod

@ -25,6 +25,9 @@ COPY . . @@ -25,6 +25,9 @@ COPY . .
# [Optional] Tests & build.
ENV NODE_ENV=production
ENV ALEX_HOST=127.0.0.1
ENV ALEX_PORT=3040
ENV ALEX_ORIGIN=https://alexandria.gitcitadel.eu
RUN bun test
RUN bun run build

Loading…
Cancel
Save