dockerized build system

This commit is contained in:
2024-09-18 18:32:16 -04:00
parent ce046c2062
commit dab127aed7
2 changed files with 59 additions and 0 deletions

21
Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
# Use the Node.js 18 Alpine Linux image as the base image
FROM node:22-alpine
# Set the working directory inside the container to /app
WORKDIR /app
# Copy package.json and package-lock.json files into the working directory
COPY package*.json ./
# Install the dependencies specified in package.json
RUN npm install -g pnpm
RUN pnpm install
# Copy all the files from the local directory to the working directory in the container
COPY . .
# Push database schema to database
RUN pnpm drizzle-kit push
# Run the application in development mode
CMD ["pnpm", "run", "dev"]

38
docker-compose.yml Normal file
View File

@@ -0,0 +1,38 @@
# Use Docker Compose file format version 3.9
# version: '3.9'
services:
app:
build:
context: .
dockerfile: Dockerfile
ports:
- '3000:3000' # Node.js
- '4983:4983' # Drizzle Studio
volumes:
- .:/app
- /app/node_modules
environment:
NODE_ENV: development
command: ["pnpm", "run", "dev"]
db:
image: postgres
restart: always
# ports:
# - 5432:5432 # DEBUG
volumes:
- postgres:/var/lib/postgresql/data
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
adminer:
image: adminer
restart: always
ports:
- 8080:8080
volumes:
postgres: