decentralised message store

feat: basic docker build

serenity 7d091daa ca90541e

+1
.gitignore
···
/node_modules
/dist
.env
+
.docker.env
*.tsbuildinfo
+28
Dockerfile
···
+
FROM node:24-alpine AS builder
+
+
WORKDIR /app
+
+
RUN corepack enable && corepack prepare pnpm@latest --activate
+
+
COPY package.json pnpm-lock.yaml ./
+
RUN pnpm install --frozen-lockfile
+
+
COPY . .
+
+
RUN pnpm build
+
+
# Production stage
+
FROM node:24-alpine
+
+
WORKDIR /app
+
+
RUN corepack enable && corepack prepare pnpm@latest --activate
+
+
COPY package.json pnpm-lock.yaml ./
+
RUN pnpm install --prod --frozen-lockfile
+
+
COPY --from=builder /app/dist ./dist
+
+
EXPOSE 7337
+
+
CMD ["node", "dist/index.mjs"]
+4
package.json
···
"lint": "eslint --fix",
"dev": "tsx src/index.ts",
"build": "tsdown src/index.ts",
+
"docker:pre-build": "sed \"s/[\\\"']//g\" .env > .docker.env",
+
"docker:source-env": "ls -a && pwd && source .docker.env",
+
"docker:build": "pnpm docker:pre-build && docker build -t gmstn-systems-shard .",
+
"docker:run": "pnpm docker:source-env && docker run -p $SERVER_PORT:$SERVER_PORT gmstn-systems-shard",
"start": "pnpm build && node dist/index.mjs"
},
"keywords": [],
+2
shell.nix
···
pnpm,
typescript,
typescript-language-server,
+
docker,
callPackage,
}:
···
pnpm
typescript
typescript-language-server
+
docker
];
shellHook = ''