mirror of
https://github.com/jetkvm/cloud-api.git
synced 2025-09-16 08:38:15 +00:00
Added Dockerfile and compose stack
This builds a thin docker container with the default .env copied into the container
This commit is contained in:
parent
4af69988c2
commit
1c6b4be721
6
.dockerignore
Normal file
6
.dockerignore
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
.github/
|
||||||
|
.idea/
|
||||||
|
node_modules/
|
||||||
|
dist/
|
||||||
|
.DS_Store
|
||||||
|
.env
|
||||||
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
FROM node:21.1.0-alpine AS packages
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY LICENSE /usr/src/app/
|
||||||
|
COPY package.json /usr/src/app/
|
||||||
|
COPY package-lock.json /usr/src/app/
|
||||||
|
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
FROM packages AS builder
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY . /usr/src/app/
|
||||||
|
RUN npx prisma generate
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM packages AS app
|
||||||
|
LABEL org.opencontainers.image.source="https://github.com/jetkvm/cloud-api"
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
COPY --from=builder /usr/src/app/prisma /usr/src/app/prisma
|
||||||
|
COPY --from=builder /usr/src/app/node_modules/.prisma /usr/src/app/node_modules/.prisma
|
||||||
|
COPY --from=builder /usr/src/app/dist /usr/src/app/dist
|
||||||
|
COPY .env.example ./.env
|
||||||
|
|
||||||
|
ENV NODE_ENV=production
|
||||||
|
ENV PORT=3000
|
||||||
|
EXPOSE 3000
|
||||||
|
CMD ["node", "./dist/index.js"]
|
||||||
44
compose.yaml
Normal file
44
compose.yaml
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
name: jetkvm-cloud-api
|
||||||
|
|
||||||
|
networks:
|
||||||
|
jetkvm:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
POSTGRES_PASSWORD: jetkvm
|
||||||
|
POSTGRES_USER: jetkvm
|
||||||
|
POSTGRES_DB: jetkvm
|
||||||
|
#ports:
|
||||||
|
# - "5432:5432"
|
||||||
|
networks:
|
||||||
|
- jetkvm
|
||||||
|
volumes:
|
||||||
|
- postgresql:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
app: &app
|
||||||
|
build: .
|
||||||
|
environment:
|
||||||
|
PORT: 5172
|
||||||
|
DATABASE_URL: postgres://jetkvm:jetkvm@db:5432/jetkvm
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
ports:
|
||||||
|
- "5172:5172"
|
||||||
|
networks:
|
||||||
|
- jetkvm
|
||||||
|
|
||||||
|
# Trigger prisma migration
|
||||||
|
# This can be done in the app container as well, but is generally discouraged.
|
||||||
|
app-migrate:
|
||||||
|
<<: *app
|
||||||
|
command: npm run prisma-migrate
|
||||||
|
ports: []
|
||||||
|
restart: no
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgresql:
|
||||||
|
driver: local
|
||||||
Loading…
Reference in New Issue
Block a user