Skip to content

Commit

Permalink
feat: add docker with project build (#66)
Browse files Browse the repository at this point in the history
Co-authored-by: Lucas Campos <103159762+k1nha@users.noreply.github.com>
  • Loading branch information
PiluVitu and k1nha authored May 31, 2024
1 parent b051a33 commit 1b25156
Show file tree
Hide file tree
Showing 6 changed files with 68 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.git
README.md
node_modules
.github
25 changes: 25 additions & 0 deletions build.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
FROM node:22 AS build

WORKDIR /usr/src/app

RUN npm install -g pnpm@8

COPY ./package.json ./pnpm-lock.yaml ./

COPY ./ .

RUN pnpm install --frozen-lockfile -r
RUN npx prisma generate
RUN pnpm build

FROM node:22-alpine3.19

WORKDIR /usr/src/app
RUN npm install -g pnpm@8
COPY --from=build /usr/src/app/package.json ./package.json
COPY --from=build /usr/src/app/build ./build
COPY --from=build /usr/src/app/node_modules ./node_modules

EXPOSE 3000

CMD ["pnpm", "run", "start"]
35 changes: 35 additions & 0 deletions docker/api-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: '3.9'

services:
octopost-db:
image: postgres:alpine3.19
ports:
- '5432:5432'
environment:
POSTGRES_USER: 'postgres'
POSTGRES_PASSWORD: 'password'
POSTGRES_DB: 'octopost'
PGDATA: '/var/lib/postgresql/mydata'
volumes:
- db:/var/lib/postgresql/mydata
networks:
- octopost

octopost-api:
build:
context: ../
dockerfile: build.Dockerfile
container_name: octopost-api
ports:
- 3000:3000
depends_on:
- octopost-db
networks:
- octopost

networks:
octopost:
driver: bridge

volumes:
db:
File renamed without changes.
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,9 @@
"migrate": "dotenv -e .env.dev -- npx prisma migrate dev",
"docs:serve": "redocly preview-docs ./openapi/main.yaml",
"docs:build": "redocly build-docs ./openapi/main.yaml --output build-docs/index.html",
"docs:lint": "redocly lint --extends minimal ./openapi/main.yaml"
"docs:lint": "redocly lint --extends minimal ./openapi/main.yaml",
"docker-bd:up": "docker compose -f docker/bd-compose.yaml up",
"docker-api:up": "docker compose -f docker/api-compose.yaml up --build"
},
"devDependencies": {
"@commitlint/cli": "19.3.0",
Expand Down
1 change: 1 addition & 0 deletions prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

generator client {
provider = "prisma-client-js"
binaryTargets = ["native", "linux-musl-openssl-3.0.x"]
}

datasource db {
Expand Down

0 comments on commit 1b25156

Please sign in to comment.