dockerizing

This commit is contained in:
2024-03-10 14:16:31 -05:00
parent a9fa89107e
commit c8d0221247
6 changed files with 59 additions and 12 deletions

4
.dockerignore Normal file
View File

@@ -0,0 +1,4 @@
node_modules
npm-debug.log
Dockerfile
.dockerignore

14
Dockerfile Normal file
View File

@@ -0,0 +1,14 @@
FROM node:21
RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app
RUN mkdir -p /home/node/app/var/db && chown -R node:node /home/node/app
WORKDIR /home/node/app
USER node
COPY --chown=node:node package*.json ./
RUN npm install
COPY --chown=node:node src src
COPY --chown=node:node bin bin
EXPOSE 3000
CMD [ "npm", "start" ]

24
bin/www
View File

@@ -20,20 +20,18 @@ const path = require("path");
var port = normalizePort(process.env.PORT || "3000");
app.set("port", port);
/**
* Create HTTPS server.
*/
const https_options = {
key: fs.readFileSync("certs/key.pem"),
cert: fs.readFileSync("certs/cert.pem"),
};
if (process.env.NODE_ENV === "development") {
// console.log(`starting livereload, watching ${path.join(__dirname, "../src/views")}`)
/**
* Create HTTPS server.
*/
const https_options = {
key: fs.readFileSync("certs/key.pem"),
cert: fs.readFileSync("certs/cert.pem"),
};
var livereload = require("livereload");
var connectLiveReload = require("connect-livereload");
const liveReloadServer = livereload.createServer({https: https_options, extraExts: ['pug']});
const liveReloadServer = livereload.createServer({https: https_options});
liveReloadServer.watch(path.join(__dirname, "../src/views"));
liveReloadServer.server.once("connection", () => {
setTimeout(() => {
@@ -41,9 +39,11 @@ if (process.env.NODE_ENV === "development") {
}, 100);
});
var server = https.createServer(https_options, app);
}
else {
var server = http.createServer(app);
}
var server = https.createServer(https_options, app);
/**
* Listen on provided port, on all network interfaces.

3
caddy/Caddyfile Normal file
View File

@@ -0,0 +1,3 @@
localhost {
reverse_proxy app:3000
}

24
docker-compose.yml Normal file
View File

@@ -0,0 +1,24 @@
version: "3.3"
services:
app:
env_file:
- .env
build: .
networks:
- web
expose:
- 3000
caddy:
image: caddy
ports:
- 80:80
- 443:443
volumes:
- ./caddy/Caddyfile:/etc/caddy/Caddyfile
networks:
- web
networks:
web:

View File

@@ -163,4 +163,6 @@ app.use(function (err, req, res, next) {
// next(createError(404));
// });
app.set('trust proxy')
module.exports = {app};