Finaliza docker compose

This commit is contained in:
LeoMortari
2025-09-14 17:43:28 -03:00
parent 63a4a002ec
commit 59106b747a
6 changed files with 23 additions and 34 deletions

7
.dockerignore Normal file
View File

@@ -0,0 +1,7 @@
node_modules
yarn.lock
package-lock.json
generated
dist
.github
.vscode

View File

@@ -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

View File

@@ -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

View File

@@ -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",

View File

@@ -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 {

View File

@@ -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(),