dockerizing
This commit is contained in:
4
.dockerignore
Normal file
4
.dockerignore
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
Dockerfile
|
||||||
|
.dockerignore
|
||||||
14
Dockerfile
Normal file
14
Dockerfile
Normal 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
24
bin/www
@@ -20,20 +20,18 @@ const path = require("path");
|
|||||||
var port = normalizePort(process.env.PORT || "3000");
|
var port = normalizePort(process.env.PORT || "3000");
|
||||||
app.set("port", port);
|
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") {
|
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 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.watch(path.join(__dirname, "../src/views"));
|
||||||
liveReloadServer.server.once("connection", () => {
|
liveReloadServer.server.once("connection", () => {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -41,9 +39,11 @@ if (process.env.NODE_ENV === "development") {
|
|||||||
}, 100);
|
}, 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.
|
* Listen on provided port, on all network interfaces.
|
||||||
|
|||||||
3
caddy/Caddyfile
Normal file
3
caddy/Caddyfile
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
localhost {
|
||||||
|
reverse_proxy app:3000
|
||||||
|
}
|
||||||
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal 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:
|
||||||
@@ -163,4 +163,6 @@ app.use(function (err, req, res, next) {
|
|||||||
// next(createError(404));
|
// next(createError(404));
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
app.set('trust proxy')
|
||||||
|
|
||||||
module.exports = {app};
|
module.exports = {app};
|
||||||
Reference in New Issue
Block a user