Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
**/.git
**/.gitignore
**/.idea
**/.vscode
**/.DS_Store
**/node_modules
.env
.env.*
!.env.example
secrets/

# App-specific
app/.svelte-kit
app/build
app/.npmrc
app/.prettierignore
app/.prettierrc
app/.eslintignore
app/.eslintrc.cjs
app/npm-debug.log

15 changes: 0 additions & 15 deletions app/.dockerignore

This file was deleted.

26 changes: 9 additions & 17 deletions app/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
# Builder image
FROM node:lts AS builder

# Set environment variables
ARG NODE_ENV=development

# Set working directory
WORKDIR /usr/src/app

# Copy package.json and package-lock.json
COPY package*.json ./
# Copy package.json from app subdirectory
COPY app/package*.json ./

# Install dependencies
RUN npm ci

# Copy source code
COPY . .
# Copy app source and shared schema
COPY app/ .
COPY classes-prisma/ /usr/src/classes-prisma/

# Add build secrets
RUN --mount=type=secret,id=postgres-user \
Expand All @@ -23,13 +21,10 @@ RUN --mount=type=secret,id=postgres-user \
RUN --mount=type=secret,id=postgres-pass \
POSTGRES_PASS=$(cat /run/secrets/postgres-pass)

# Generate Prisma Client for build
RUN npx prisma generate

# Build the app
RUN npm run build

# Remove dev dependencies
RUN npm prune --production

# Running image
Expand All @@ -39,20 +34,17 @@ RUN apt-get update && apt-get upgrade -y

ENV NODE_ENV=production

# Set working directory
WORKDIR /usr/src/app

# Copy package.json
COPY --chown=node:node package*.json ./
COPY --chown=node:node app/package*.json ./

#Copy prisma files
COPY --chown=node:node ./prisma ./prisma
# Copy shared Prisma schema and migrations
COPY --chown=node:node classes-prisma/ /usr/src/classes-prisma/

# Copy built assets
COPY --chown=node:node --from=builder /usr/src/app/build ./build
COPY --chown=node:node --from=builder /usr/src/app/node_modules ./node_modules

COPY --chown=node:node ./wait-for-it.sh /wait-for-it.sh
COPY --chown=node:node app/wait-for-it.sh /wait-for-it.sh
RUN chmod +x /wait-for-it.sh

USER node
Expand Down
18 changes: 7 additions & 11 deletions app/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,27 @@ ENV NODE_ENV=development
# Set working directory
WORKDIR /usr/src/app

# Copy package.json and package-lock.json
COPY package*.json ./
# Copy package.json from app subdirectory
COPY app/package*.json ./

# Install dependencies
RUN npm install

# Copy source code
COPY . .

# Build the app
# RUN npm run build
# Copy app source and shared schema
COPY app/ .
COPY classes-prisma/ /usr/src/classes-prisma/

# Expose ports for SvelteKit and Vite's HMR
EXPOSE 5173
EXPOSE 24678
EXPOSE 5555

COPY ./entrypoint.sh /entrypoint.sh
COPY ./wait-for-it.sh /wait-for-it.sh
COPY app/entrypoint.sh /entrypoint.sh
COPY app/wait-for-it.sh /wait-for-it.sh
RUN chmod +x /entrypoint.sh \
&& chmod +x /wait-for-it.sh

ENTRYPOINT [ "/wait-for-it.sh", "db:5432", "-t", "10", "-s" , "--", "/entrypoint.sh" ]

# Start SvelteKit development server
CMD ["npm", "run", "deploy:dev"]

#CMD ["npx", "prisma", "studio", "--port", "5555"]
3 changes: 1 addition & 2 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
},
"type": "module",
"prisma": {
"seed": "vite-node ./prisma/seed.js",
"schema": "./prisma/schema.prisma"
"schema": "../classes-prisma/schema.prisma"
}
}
File renamed without changes.
File renamed without changes.
10 changes: 7 additions & 3 deletions compose.dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ services:
env_file:
- .env
build:
context: ./app
dockerfile: Dockerfile.dev
context: .
dockerfile: app/Dockerfile.dev
secrets:
- postgres-user
- postgres-password
Expand All @@ -44,6 +44,7 @@ services:
volumes:
- ./app:/usr/src/app
- /usr/src/app/node_modules
- ./classes-prisma:/usr/src/classes-prisma
environment:
DEVELOPMENT: "true"
TZ: "America/Chicago"
Expand All @@ -55,13 +56,16 @@ services:
cron:
env_file:
- .env
build: ./cron-service
build:
context: .
dockerfile: cron-service/Dockerfile
depends_on:
- db
restart: unless-stopped
volumes:
- ./cron-service:/var/task
- /var/task/node_modules
- ./classes-prisma:/classes-prisma
networks:
- backend

Expand Down
4 changes: 3 additions & 1 deletion compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ services:
cron:
env_file:
- .env
build: ./cron-service
build:
context: .
dockerfile: cron-service/Dockerfile
depends_on:
- db
restart: unless-stopped
Expand Down
16 changes: 7 additions & 9 deletions cron-service/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
FROM public.ecr.aws/lambda/nodejs:22 AS builder

# Set environment variables
# ENV NODE_ENV=production
COPY cron-service/package*.json ${LAMBDA_TASK_ROOT}/

# Copy package.json and package-lock.json
COPY package*.json ${LAMBDA_TASK_ROOT}

# Install dependencies
RUN npm ci --omit=dev

FROM public.ecr.aws/lambda/nodejs:22 AS final

COPY --from=builder /var/task/node_modules /var/task/node_modules

COPY ./prisma ${LAMBDA_TASK_ROOT}/prisma
COPY ./handler.js ${LAMBDA_TASK_ROOT}/handler.js
COPY cron-service/prisma ${LAMBDA_TASK_ROOT}/prisma
COPY cron-service/handler.js ${LAMBDA_TASK_ROOT}/handler.js
COPY cron-service/package.json ${LAMBDA_TASK_ROOT}/package.json

COPY ./package.json ${LAMBDA_TASK_ROOT}/package.json
# Copy shared Prisma schema and migrations
# schema path "../classes-prisma/schema.prisma" relative to /var/task resolves to /classes-prisma
COPY classes-prisma/ /classes-prisma/

# Generate Prisma Client for build
RUN npx prisma generate
Expand Down
2 changes: 1 addition & 1 deletion cron-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@
"main": "handler.js",
"prisma": {
"seed": "node ./prisma/seed.js",
"schema": "./prisma/schema.prisma"
"schema": "../classes-prisma/schema.prisma"
}
}
Loading