Skip to content

Commit

Permalink
ci: add deno dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
BlackDark committed Oct 11, 2024
1 parent e03a65f commit baf0116
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
69 changes: 69 additions & 0 deletions Dockerfile-deno.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# https://github.com/denoland/deno_docker/blob/main/example/Dockerfile

FROM denoland/deno:alpine-2.0.0 AS base
WORKDIR /app

RUN apk add --no-cache libstdc++ dumb-init git

COPY package.json pnpm-lock.yaml ./

RUN deno install

FROM base AS builder
COPY src src/
COPY index.ts esbuild.ts ./

RUN deno --allow-env --allow-read --allow-run esbuild.ts

FROM base AS dev
ENV CONFIG_LOCATION=/app/config/config.yml
ENV SECRETS_LOCATION=/app/config/secrets.yml
ENV DENO_DIR=/app/.deno_cache
# manually mount src etc

CMD ["deno", "--allow-env", "--allow-read", "--allow-run", "--allow-net", "--allow-sys", "--unstable-sloppy-imports", "index.ts"]

# https://github.com/evanw/esbuild/issues/1921
FROM denoland/deno:alpine-2.0.0 AS prod
WORKDIR /app

RUN apk add --no-cache libstdc++ dumb-init git

# TODO maybe in future. Results in breaking change
#USER node

COPY --from=builder /app/bundle.cjs /app/index.cjs

ENV CONFIG_LOCATION=/app/config/config.yml
ENV SECRETS_LOCATION=/app/config/secrets.yml
ENV DENO_DIR=/app/.deno_cache

# Compile cache / modify for multi-user
RUN deno cache --unstable-sloppy-imports index.cjs || true
RUN chmod uga+rw -R ${DENO_DIR}

# Not sure about those options
#--cached-only
#--no-code-cache

# TODO not sure about this
# Run with dumb-init to not start node with PID=1, since Node.js was not designed to run as PID 1
CMD ["dumb-init", "deno", "--allow-env", "--allow-read", "--allow-run", "--allow-net", "--allow-sys", "--unstable-sloppy-imports", "index.cjs"]


# BUN Sample
# FROM oven/bun:1.1.30-alpine AS prod
# WORKDIR /app

# RUN apk add --no-cache libstdc++ dumb-init git

# # TODO maybe in future. Results in breaking change
# #USER node

# COPY --from=builder /app/bundle.cjs /app/index.cjs

# ENV CONFIG_LOCATION=/app/config/config.yml
# ENV SECRETS_LOCATION=/app/config/secrets.yml

# # Run with dumb-init to not start node with PID=1, since Node.js was not designed to run as PID 1
# CMD ["dumb-init", "bun", "index.cjs"]
4 changes: 2 additions & 2 deletions generate-api.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { unlinkSync } from "fs";
import path from "path";
import { unlinkSync } from "node:fs";
import path from "node:path";
import { generateApi } from "swagger-typescript-api";

const PATH_TO_OUTPUT_DIR = path.resolve(process.cwd(), "./src/__generated__");
Expand Down

0 comments on commit baf0116

Please sign in to comment.