Compare commits
No commits in common. "8ffc999798899caadf5303ac29159929c56564df" and "c5c30cf8c30bb820d1e497dd35cf65b05bb09c6e" have entirely different histories.
8ffc999798
...
c5c30cf8c3
4 changed files with 21 additions and 11 deletions
10
Dockerfile
10
Dockerfile
|
|
@ -4,12 +4,12 @@ FROM node:18-alpine
|
||||||
# Set working directory
|
# Set working directory
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy package files and install dependencies
|
# Copy package files, config script
|
||||||
COPY package.json package-lock.json ./
|
COPY package.json package-lock.json esbuild.config.js ./
|
||||||
RUN npm ci --only=production
|
# Copy application source before build so esbuild can locate entry files
|
||||||
|
|
||||||
# Copy application source
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
# Install all dependencies, create dist folder, build with esbuild, then remove devDeps
|
||||||
|
RUN npm ci && mkdir -p dist && npm run build && npm prune --production
|
||||||
|
|
||||||
# Expose the application port
|
# Expose the application port
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
|
||||||
15
esbuild.config.js
Normal file
15
esbuild.config.js
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
import { build } from 'esbuild';
|
||||||
|
|
||||||
|
build({
|
||||||
|
entryPoints: ['index.js'],
|
||||||
|
bundle: true,
|
||||||
|
platform: 'node',
|
||||||
|
target: 'node18',
|
||||||
|
outfile: 'dist/index.js',
|
||||||
|
minify: true,
|
||||||
|
legalComments: 'none',
|
||||||
|
drop: ['console', 'debugger'],
|
||||||
|
}).catch((e) => {
|
||||||
|
console.error('esbuild failed:', e);
|
||||||
|
process.exit(1);
|
||||||
|
});
|
||||||
5
index.js
5
index.js
|
|
@ -58,11 +58,6 @@ if (process.argv.includes('-d')) {
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Disable console.log in production to suppress output in daemon mode
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
|
||||||
console.log = () => {};
|
|
||||||
}
|
|
||||||
|
|
||||||
const pluginRegistry = [];
|
const pluginRegistry = [];
|
||||||
export function registerPlugin(pluginName, handler) {
|
export function registerPlugin(pluginName, handler) {
|
||||||
pluginRegistry.push({ name: pluginName, handler });
|
pluginRegistry.push({ name: pluginName, handler });
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "node index.js",
|
"start": "node index.js",
|
||||||
"dev": "nodemon index.js",
|
"dev": "nodemon index.js",
|
||||||
"daemon": "pm2 start index.js --name checkpoint",
|
"daemon": "pm2 start dist/index.js --name checkpoint",
|
||||||
"stop": "pm2 stop checkpoint",
|
"stop": "pm2 stop checkpoint",
|
||||||
"restart": "pm2 restart checkpoint",
|
"restart": "pm2 restart checkpoint",
|
||||||
"logs": "pm2 logs checkpoint",
|
"logs": "pm2 logs checkpoint",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue