From 77c5ef2cf522d40f256a597834f4958fbaf7990f Mon Sep 17 00:00:00 2001 From: Fred Boniface Date: Mon, 9 Jan 2023 23:26:28 +0000 Subject: [PATCH] Refactor docker/k8s features and builds --- .dockerignore | 4 ++- docker/Dockerfile => Dockerfile | 4 +-- docker/nginx-proxy/Dockerfile | 1 - docker/nginx-proxy/nginx.conf | 0 nginx-proxy-docker/Dockerfile | 3 ++ nginx-proxy-docker/nginx.conf | 44 +++++++++++++++++++++++++++++ src/controllers/kube.controllers.js | 12 +++++++- src/routes/kube.routes.js | 1 + src/services/kube.services.js | 8 +++++- 9 files changed, 71 insertions(+), 6 deletions(-) rename docker/Dockerfile => Dockerfile (74%) delete mode 100644 docker/nginx-proxy/Dockerfile delete mode 100644 docker/nginx-proxy/nginx.conf create mode 100644 nginx-proxy-docker/Dockerfile create mode 100644 nginx-proxy-docker/nginx.conf diff --git a/.dockerignore b/.dockerignore index 125797c..45833f1 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,5 +4,7 @@ npm-debug.log .gitignore Dockerfile .dockerignore +nginx-proxy-docker README.md -LICENSE \ No newline at end of file +LICENSE +UpNext.md \ No newline at end of file diff --git a/docker/Dockerfile b/Dockerfile similarity index 74% rename from docker/Dockerfile rename to Dockerfile index 9ba28a2..7ef0db6 100644 --- a/docker/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM node:19 WORKDIR /usr/src/app -COPY ../package*.json ./ +COPY ./package*.json ./ RUN npm ci --only=production -COPY .. . +COPY . . EXPOSE 8460 CMD [ "node", "app.js" ] diff --git a/docker/nginx-proxy/Dockerfile b/docker/nginx-proxy/Dockerfile deleted file mode 100644 index 5861e3d..0000000 --- a/docker/nginx-proxy/Dockerfile +++ /dev/null @@ -1 +0,0 @@ -FROM nginx:latest diff --git a/docker/nginx-proxy/nginx.conf b/docker/nginx-proxy/nginx.conf deleted file mode 100644 index e69de29..0000000 diff --git a/nginx-proxy-docker/Dockerfile b/nginx-proxy-docker/Dockerfile new file mode 100644 index 0000000..05252dd --- /dev/null +++ b/nginx-proxy-docker/Dockerfile @@ -0,0 +1,3 @@ +FROM nginx:mainline-alpine-slim +RUN rm /etc/nginx/nginx.conf +COPY ./nginx.conf /etc/nginx/nginx.conf \ No newline at end of file diff --git a/nginx-proxy-docker/nginx.conf b/nginx-proxy-docker/nginx.conf new file mode 100644 index 0000000..d09000f --- /dev/null +++ b/nginx-proxy-docker/nginx.conf @@ -0,0 +1,44 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + access_log /var/log/nginx/access.log main; + sendfile on; + keepalive_timeout 65; + gzip on; + + proxy_cache_path /var/cache/nginx keys_zone=owl_cache:20m inactive=24h; + + server { + listen 80; + server_name localhost; + proxy_cache owl_cache; + + location / { + proxy_pass http://localhost:8460; + proxy_cache_key $scheme://$host$uri$is_args$query_string; + proxy_ignore_headers Cache-Control; + proxy_cache_valid 200 1440m; + } + + location /api/ { + proxy_pass http://localhost:8460; + proxy_cache_key $scheme://$host$uri$is_args$query_string; + proxy_ignore_headers Cache-Control; + proxy_cache_valid 200 1m; + } + } +} diff --git a/src/controllers/kube.controllers.js b/src/controllers/kube.controllers.js index fe7e208..2253aef 100644 --- a/src/controllers/kube.controllers.js +++ b/src/controllers/kube.controllers.js @@ -18,7 +18,17 @@ async function getReady(req, res, next){ } } +async function getTime(req, res, next){ + try { + res.json(await kube.getTime(req.body)) + } catch (err) { + console.error(`Unknown Error`, err.message); + next(err); + } +} + module.exports = { getAlive, - getReady + getReady, + getTime } \ No newline at end of file diff --git a/src/routes/kube.routes.js b/src/routes/kube.routes.js index 44fbe8b..e42abc1 100644 --- a/src/routes/kube.routes.js +++ b/src/routes/kube.routes.js @@ -4,5 +4,6 @@ const kubeController = require('../controllers/kube.controllers'); router.get('/alive', kubeController.getAlive); router.get('/ready', kubeController.getReady); +router.get('/time', kubeController.getTime); module.exports = router \ No newline at end of file diff --git a/src/services/kube.services.js b/src/services/kube.services.js index 8339f4a..dac735b 100644 --- a/src/services/kube.services.js +++ b/src/services/kube.services.js @@ -6,7 +6,13 @@ async function getReady(){ return "not_implemented"; }; +async function getTime(){ + var now = new Date() + return {responseGenerated: now} +} + module.exports = { getAlive, - getReady + getReady, + getTime } \ No newline at end of file