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");
|
||||
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
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));
|
||||
// });
|
||||
|
||||
app.set('trust proxy')
|
||||
|
||||
module.exports = {app};
|
||||
Reference in New Issue
Block a user