From 59106b747ad5e072fc76cc6d9e926e1a004021bf Mon Sep 17 00:00:00 2001 From: LeoMortari Date: Sun, 14 Sep 2025 17:43:28 -0300 Subject: [PATCH] Finaliza docker compose --- .dockerignore | 7 +++++++ Dockerfile | 20 +++++--------------- docker-compose.yml | 16 ++++------------ package.json | 2 +- prisma/schema.prisma | 5 +++-- src/auth/keycloak.strategy.ts | 7 +++---- 6 files changed, 23 insertions(+), 34 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..5c313b2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +yarn.lock +package-lock.json +generated +dist +.github +.vscode \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0df43f2..f2f356f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,29 +1,19 @@ -FROM node:22-alpine AS builder +FROM node:22-alpine -WORKDIR /usr/src/app - -RUN apk add --no-cache python3 make g++ +WORKDIR /app COPY package.json ./ COPY prisma ./prisma/ -RUN yarn install --frozen-lockfile +RUN yarn install COPY . . -RUN npx prisma generate - RUN yarn build -FROM node:22-alpine +ENV KEYCLOAK_URL=http://keycloak:8080 -WORKDIR /usr/src/app - -COPY --from=builder /usr/src/app/package.json ./ -COPY --from=builder /usr/src/app/node_modules ./node_modules - -COPY --from=builder /usr/src/app/dist ./dist -COPY --from=builder /usr/src/app/prisma ./prisma +RUN npx prisma generate EXPOSE 3000 diff --git a/docker-compose.yml b/docker-compose.yml index 7c099a4..c2bc7d4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,24 +1,16 @@ services: - app: + clipperia-api: build: context: . dockerfile: Dockerfile - container_name: clipperia-api ports: - '3050:3000' environment: - NODE_ENV: production - DATABASE_URL: postgresql://postgres:postgres@db:5432/clipperia?schema=public - volumes: - - .:/usr/src/app - - /usr/src/app/node_modules + NODE_ENV: development + DATABASE_URL: postgresql://leolitas:L@l321321321@154.12.229.181:5666/clipperia?schema=public networks: - - clipperia-network - # - dokploy-network - command: ['yarn', 'start:prod'] + - dokploy-network networks: - clipperia-network: - internal: true dokploy-network: external: true diff --git a/package.json b/package.json index 8985083..6a532a7 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "start": "nest start", "start:dev": "cross-env NODE_ENV=development nest start --watch", "start:debug": "cross-env NODE_ENV=development nest start --debug --watch", - "start:prod": "cross-env NODE_ENV=production node dist/main", + "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", diff --git a/prisma/schema.prisma b/prisma/schema.prisma index f186de0..fe8e078 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -1,6 +1,7 @@ generator client { - provider = "prisma-client-js" - output = "../generated/prisma" + provider = "prisma-client-js" + output = "../generated/prisma" + binaryTargets = ["native", "linux-musl-arm64-openssl-3.0.x"] } datasource db { diff --git a/src/auth/keycloak.strategy.ts b/src/auth/keycloak.strategy.ts index bdaad1d..5a2bf36 100644 --- a/src/auth/keycloak.strategy.ts +++ b/src/auth/keycloak.strategy.ts @@ -33,10 +33,9 @@ export interface JwtPayload { @Injectable() export class KeycloakJwtStrategy extends PassportStrategy(Strategy, 'jwt') { constructor() { - const baseUrl = - process.env.NODE_ENV === 'production' - ? 'http://keycloak:8080' - : 'https://auth.clipperia.com.br'; + const baseUrl = process.env.KEYCLOAK_URL + ? process.env.KEYCLOAK_URL + : 'https://auth.clipperia.com.br'; super({ jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),