From 892e386a34d2076d3e6ad72a37a11786d2ba8c47 Mon Sep 17 00:00:00 2001 From: Danilo Alexandre Date: Mon, 19 Dec 2022 17:15:28 -0300 Subject: [PATCH] preparando docker para GCP --- .dockerignore | 14 ++++++++++++++ .gitignore | 4 +++- Dockerfile | 15 +++++++++++++++ package.json | 13 ++++++------- src/database/db/postgresDB.ts | 3 --- src/server.ts | 6 ++++-- 6 files changed, 42 insertions(+), 13 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7cf322b --- /dev/null +++ b/.dockerignore @@ -0,0 +1,14 @@ +node_modules +npm-debug.log +dist/* +.vscode + + +# Serverless directories +.serverless + +# Webpack directories +.webpack + +# Yarn +yarn-error.log \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7585ab0..d12e4bc 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,6 @@ coverage # Dotenv !.env.example -.env* \ No newline at end of file +.env* + +dist/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d400531 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ + +# Build dependencies +FROM node:18-alpine as dependencies + +ENV NODE_ENV production + +WORKDIR /app +COPY package.json . +RUN npm install --omit=dev +COPY . . +# Build production image +FROM dependencies as builder +RUN npm run build +EXPOSE $PORT +CMD npm run start \ No newline at end of file diff --git a/package.json b/package.json index 6776525..fc2efbb 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,13 @@ "main": "index.ts", "license": "MIT", "scripts": { - "start": "sls offline start", + "serve": "sls offline start", "dev": "ts-node-dev --inspect --transpile-only --ignore-watch node_modules --respawn src/server.ts", - "test": "jest --watch" + "test": "jest --watch", + "build": "tsc --build", + "start": "node dist/src/server.js", + "docker:build": "docker build -t eu.gcr.io/emtu-371421/emtu-api:0.1 .", + "docker:push": "docker push eu.gcr.io/emtu-371421/emtu-api:0.1" }, "devDependencies": { "@middy/core": "^2.2.0", @@ -14,7 +18,6 @@ "@middy/http-json-body-parser": "^2.2.0", "aws-lambda": "^0.1.2", "jest": "^28.1.3", - "node": "^12.3.1", "ts-jest": "^28.0.8", "ts-node-dev": "^2.0.0", "uuid": "^3.3.2" @@ -32,10 +35,6 @@ "express": "^4.18.2", "json-schema-to-ts": "^1.6.4", "pg": "^8.8.0", - "serverless": "^3.22.0", - "serverless-dynamodb-local": "^0.2.39", - "serverless-offline": "^7.0.0", - "serverless-webpack": "^5.1.1", "source-map-support": "^0.5.6", "swagger-ui-express": "^4.6.0", "ts-loader": "^4.2.0", diff --git a/src/database/db/postgresDB.ts b/src/database/db/postgresDB.ts index b2acfdf..a3e5bbe 100644 --- a/src/database/db/postgresDB.ts +++ b/src/database/db/postgresDB.ts @@ -1,7 +1,4 @@ import { Pool } from "pg"; -import dotenv from "dotenv"; - -dotenv.config(); class PostgresDB { private static _instance: Pool; diff --git a/src/server.ts b/src/server.ts index cccf229..1c606d8 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,3 +1,5 @@ +import 'dotenv/config'; + import express from 'express'; import swaggerUi from 'swagger-ui-express'; import swaggerFile from './swagger.json'; @@ -12,7 +14,7 @@ app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerFile)); app.use(router); app.get("/", (req, res) => { - return res.json({message: "EMTU-API"}); + return res.json({message: `EMTU-API (${process.env.ENV})`}); }) -app.listen(3333, () => console.log("server is running on port 3333")); +app.listen(process.env.PORT || 3333, () => console.log(`server is running on port ${process.env.PORT || 3333}`));