fix: make API dockerfile use correct setup steps

This commit is contained in:
Hayden Young 2021-10-15 13:49:55 +00:00 committed by GitHub
parent 182de09ccc
commit aae55cfe71
5 changed files with 69 additions and 17 deletions

View File

@ -1 +0,0 @@
MONGO_URL=mongodb://db:27017/fosscord?readPreference=secondaryPreferred

View File

@ -1,2 +1,5 @@
node_modules/ node_modules/
db/ db/
dist/
coverage/
*.db

6
.env.example Normal file
View File

@ -0,0 +1,6 @@
PRODUCTION=false
DATABASE="postgres://fosscord:fosscord@db:5432/fosscord"
STORAGE_PROVIDER=file
STORAGE_LOCATION=/data

View File

@ -1,12 +1,28 @@
FROM node:lts-alpine FROM node:lts-alpine
# needed for native packages (bcrypt, canvas) # needed for native packages (bcrypt, canvas)
RUN apk add --no-cache make gcc g++ python cairo-dev jpeg-dev pango-dev giflib-dev RUN apk add --no-cache \
WORKDIR /usr/src/fosscord-server make \
COPY package.json . gcc \
COPY package-lock.json . g++ \
RUN npm rebuild bcrypt --build-from-source && npm install canvas --build-from-source python \
cairo-dev \
jpeg-dev \
pango-dev \
giflib-dev
WORKDIR /usr/src/fosscord-api
RUN npm rebuild bcrypt --build-from-source \
&& npm install canvas --build-from-source
COPY api/package.json api/package-lock.json ./
COPY util ../util
RUN npm install RUN npm install
COPY . .
COPY api/ .
RUN npm run build
EXPOSE 3001 EXPOSE 3001
RUN npm run build-docker
CMD ["node", "dist/start.js"] CMD ["node", "dist/start.js"]

View File

@ -1,24 +1,52 @@
---
version: "3" version: "3"
services: services:
db: db:
hostname: fosscord_db hostname: fosscord_db
image: mongo:latest image: postgres:latest
volumes: volumes:
- ./db:/data/db - db_data:/var/lib/postgres
restart: unless-stopped restart: unless-stopped
ports:
- 5432:5432
environment:
POSTGRES_USER: fosscord
POSTGRES_DATABASE: fosscord
POSTGRES_PASSWORD: fosscord
api: api:
hostname: fosscord_api build:
image: fosscord/api context: .
dockerfile: api/Dockerfile
depends_on: depends_on:
- db - db
ports: ports:
- 3001:3001 - 3001:3001
env_file: ./.docker/env env_file: .env
gateway: gateway:
hostname: fosscord_gateway build:
image: fosscord/gateway context: .
dockerfile: gateway/Dockerfile
depends_on: depends_on:
- db - db
ports: ports:
- 3002:3002 - 3002:3002
env_file: ./.docker/env env_file: .env
cdn:
build:
context: .
dockerfile: cdn/Dockerfile
depends_on:
- db
ports:
- 3003:3003
volumes:
- cdn_data:/data
env_file: .env
volumes:
db_data: {}
cdn_data: {}