Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Docker Project/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM node:18-alpine
WORKDIR /usr/app
COPY ./package.json ./
RUN npm install
COPY ./ ./
CMD ["npm", "run", "serve"]
19 changes: 19 additions & 0 deletions Docker Project/database.connection.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import "reflect-metadata";
import { createConnection, Connection, ConnectionOptions } from "typeorm";
import { join } from "path";
const parentDir = join(__dirname, "..");

const connectionOpts: ConnectionOptions = {
type: "postgres",
host: process.env.POSTGRES_HOST || "postgres",
port: Number(process.env.POSTGRES_PORT) || 5432,
username: process.env.POSTGRES_USERNAME || "postgres",
password: process.env.POSTGRES_PASSWORD || "postgres_password",
database: process.env.POSTGRES_DB || "simple_blog_api",
entities: [`${parentDir}/**/*.entity.ts`],
synchronize: true
};

const connection:Promise<Connection> = createConnection(connectionOpts);

export default connection;
29 changes: 29 additions & 0 deletions Docker Project/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
version: '3'
services:
postgres:
image: 'postgres:latest'
environment:
- POSTGRES_PASSWORD=postgres_password
- POSTGRES_USER=postgres
- POSTGRES_DB=simple_blog_api
- POSTGRES_TYPE=postgres
- POSTGRES_HOST=postgres
volumes:
- ./localDataCenter:./data
command: ["postgres", "--save", "1 1"]

node-app:
depends_on:
- postgres
restart: always
image : docker.io/snehasharma2606/simpleblogapi:1.2
# build:
# context: ./
ports:
- "3000:3000"
environment:
- PGUSER=postgres
- PGHOST=postgres
- PGDATABASE=simple_blog_api
- PGPASSWORD=postgres_password
- PGPORT=5432
26 changes: 26 additions & 0 deletions Kubernetes Project/ingress-service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: "true"
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- http:
paths:
- path: /?(.*)
pathType: Prefix
backend:
service:
name: node-app-cluster-ip-service
port:
number: 3000
- path: /api/?(.*)
pathType: Prefix
backend:
service:
name: node-app-cluster-ip-service
port:
number: 3000
11 changes: 11 additions & 0 deletions Kubernetes Project/node-app-cluster-ip-service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: node-app-cluster-ip-service
spec:
type: ClusterIP
selector:
component: node-app
ports:
- port: 3000
targetPort: 3000
27 changes: 27 additions & 0 deletions Kubernetes Project/node-app-deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: node-app-deployment
spec:
replicas: 1
selector:
matchLabels:
component: node-app
template:
metadata:
labels:
component: node-app
spec:
containers:
- name: node-app
image: docker.io/snehasharma2606/simpleblogapi:1.2
ports:
- containerPort: 3000
env:
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: pgpassword
key: POSTGRES_PASSWORD
- name: POSTGRES_HOST
value: postgres-cluster-ip-service
11 changes: 11 additions & 0 deletions Kubernetes Project/postgres-cluster-ip-service.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: postgres-cluster-ip-service
spec:
type: ClusterIP
selector:
component: postgres
ports:
- port: 5432
targetPort: 5432
35 changes: 35 additions & 0 deletions Kubernetes Project/postgres-deployment.k8s.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-deployment.k8s
spec:
replicas: 1
selector:
matchLabels:
component: postgres
template:
metadata:
labels:
component: postgres
spec:
volumes:
- name: postgres-storage
persistentVolumeClaim:
claimName: database-persistent-volume-claim
containers:
- name: postgres
image: docker.io/postgres:latest
ports:
- containerPort: 5432
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgres-storage
subPath: postgres
env:
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: pgpassword
key: POSTGRES_PASSWORD
- name: POSTGRES_DB
value: simple_blog_api
10 changes: 10 additions & 0 deletions Kubernetes Project/postgres-pvc-k8s.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-persistent-volume-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi