diff --git a/Dockerfile b/Dockerfile index f3a1216..30666d7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,15 +3,15 @@ FROM node:20.11.0-alpine3.19 # set working directory in the image WORKDIR /home/node/app -## copy over server -COPY docker . +## copy files over +COPY docker/package.json . +COPY docker/server.js . +COPY docker/tls.server.js . +COPY certs certs ## Run RUN npm install RUN npm i node-hl7-server # EXPOSE -EXPOSE 3000 - -# COMMAND -CMD ["npm", "run", "server"] \ No newline at end of file +EXPOSE 3000 \ No newline at end of file diff --git a/docker/package.json b/docker/package.json index 320478a..084ca3c 100644 --- a/docker/package.json +++ b/docker/package.json @@ -1,10 +1,10 @@ { "name": "docker-hl7-server", "version": "1.0.0", - "main": "server.js", "private": true, "scripts": { - "server": "node server.js" + "server": "node server.js", + "server:tls": "node tls.server.js" }, "description": "Simple Server running on Docker", "author": "Shane Froebel", diff --git a/docker/tls.server.js b/docker/tls.server.js new file mode 100644 index 0000000..46919f4 --- /dev/null +++ b/docker/tls.server.js @@ -0,0 +1,32 @@ +const { Server } = require('node-hl7-server') +const fs= require('node:fs') +const path = require('node:path') + +const server = new Server({ + bindAddress: 'localhost', + tls: { + key: fs.readFileSync(path.join('certs/', 'server-key.pem')), + cert: fs.readFileSync(path.join('certs/', 'server-crt.pem')), + rejectUnauthorized: false + } +}) + +const inbound = server.createInbound({ port: 3000 }, async (req, res) => { + await res.sendResponse('AA') +}) + +inbound.on('client.close', () => { + console.log('Client Disconnected') +}) + +inbound.on('client.connect', () => { + console.log('Client Connected') +}) + +inbound.on('data.raw', (data) => { + console.log('Raw Data:', data) +}) + +inbound.on('listen', () => { + console.log('Ready to Listen for Messages') +}) diff --git a/docker/yaml/server.yaml b/docker/yaml/server.yaml new file mode 100644 index 0000000..a2cd1f6 --- /dev/null +++ b/docker/yaml/server.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: Service +metadata: + name: hl7-server + namespace: hl7-server +spec: + ports: + - name: 6000-tcp + port: 6000 + protocol: TCP + targetPort: 3000 + selector: + app: hl7-server + type: LoadBalancer +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: hl7-server + namespace: hl7-server +spec: + selector: + matchLabels: + app: hl7-server + replicas: 1 + template: + metadata: + labels: + app: hl7-server + spec: + containers: + - name: hl7-server + command: ["npm"] + args: ["run", "server"] + image: docker-node-hl7-server:latest + ports: + - containerPort: 3000 + imagePullPolicy: IfNotPresent \ No newline at end of file diff --git a/docker/yaml/tls.server.yaml b/docker/yaml/tls.server.yaml new file mode 100644 index 0000000..fc39e54 --- /dev/null +++ b/docker/yaml/tls.server.yaml @@ -0,0 +1,38 @@ +apiVersion: v1 +kind: Service +metadata: + name: tls-hl7-server + namespace: hl7-server +spec: + ports: + - name: 6001-tcp + port: 6001 + protocol: TCP + targetPort: 3000 + selector: + app: tls-hl7-server + type: LoadBalancer +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: tls-hl7-server + namespace: hl7-server +spec: + selector: + matchLabels: + app: tls-hl7-server + replicas: 1 + template: + metadata: + labels: + app: tls-hl7-server + spec: + containers: + - name: tls-hl7-server + command: ["npm"] + args: ["run", "server:tls"] + image: docker-node-hl7-server:latest + ports: + - containerPort: 3000 + imagePullPolicy: IfNotPresent \ No newline at end of file diff --git a/package.json b/package.json index 94ebf28..b284711 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "clean": "rm -rf coverage docs lib temp", "build": "tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && tsc -p tsconfig.types.json && ./bin/build-types.sh", "build:watch": "tsc -p tsconfig.esm.json -w", - "docker:build": "docker build -t docker-hl7-server:latest .", + "docker:build": "docker build -t docker-node-hl7-server:latest .", "npm:lint": "npmPkgJsonLint .", "lint": "npm run npm:lint && ts-standard | snazzy", "lint:fix": "npm run npm:lint . && ts-standard --fix | snazzy",