build: fixes & tweaks to dockerfile/compose file

This commit is contained in:
Dragory 2024-03-30 15:46:15 +00:00
parent b2e03567d3
commit 7f37f0c372
No known key found for this signature in database
2 changed files with 35 additions and 16 deletions

View file

@ -1,11 +1,25 @@
FROM node:20 FROM node:20
RUN mkdir /zeppelin
RUN chown node:node /zeppelin
USER node USER node
COPY --chown=node:node . /zeppelin ARG API_URL
# Install dependencies before copying over any other files
COPY --chown=node:node package.json package-lock.json /zeppelin
RUN mkdir /zeppelin/backend
COPY --chown=node:node backend/package.json /zeppelin/backend
RUN mkdir /zeppelin/shared
COPY --chown=node:node shared/package.json /zeppelin/shared
RUN mkdir /zeppelin/dashboard
COPY --chown=node:node dashboard/package.json /zeppelin/dashboard
# Install dependencies for all packages
WORKDIR /zeppelin WORKDIR /zeppelin
RUN npm ci RUN npm install
COPY --chown=node:node . /zeppelin
# Build backend # Build backend
WORKDIR /zeppelin/backend WORKDIR /zeppelin/backend
@ -17,4 +31,4 @@ RUN npm run build
# Prune dev dependencies # Prune dev dependencies
WORKDIR /zeppelin WORKDIR /zeppelin
RUN npm prune --production RUN npm prune --omit=dev

View file

@ -17,7 +17,7 @@ services:
volumes: volumes:
- mysql-data:/var/lib/mysql - mysql-data:/var/lib/mysql
# - ./docker/production/data/mysql:/var/lib/mysql # - ./docker/production/data/mysql:/var/lib/mysql
command: --authentication-policy=mysql_native_password #command: --authentication-policy=mysql_native_password
healthcheck: healthcheck:
test: "/usr/bin/mysql --user=root --password=\"${STANDALONE_MYSQL_ROOT_PASSWORD}\" --execute \"SHOW DATABASES;\"" test: "/usr/bin/mysql --user=root --password=\"${STANDALONE_MYSQL_ROOT_PASSWORD}\" --execute \"SHOW DATABASES;\""
interval: 5s interval: 5s
@ -37,23 +37,28 @@ services:
depends_on: depends_on:
mysql: mysql:
condition: service_healthy condition: service_healthy
build: build: &build
context: . context: .
args:
# Used at compile-time by dashboard
API_URL:
environment: environment:
HOST_MODE: standalone HOST_MODE: standalone
working_dir: /zeppelin env_file:
- .env
working_dir: /zeppelin/backend
command: ["npm", "run", "migrate-prod"] command: ["npm", "run", "migrate-prod"]
api: api:
depends_on: depends_on:
migrate: migrate:
condition: service_completed_successfully condition: service_completed_successfully
build: build: *build
context: .
restart: on-failure restart: on-failure
environment: environment:
HOST_MODE: standalone HOST_MODE: standalone
DEBUG: ${DEBUG-} env_file:
- .env
working_dir: /zeppelin/backend working_dir: /zeppelin/backend
command: ["npm", "run", "start-api-prod"] command: ["npm", "run", "start-api-prod"]
@ -61,12 +66,12 @@ services:
depends_on: depends_on:
migrate: migrate:
condition: service_completed_successfully condition: service_completed_successfully
build: build: *build
context: .
restart: on-failure restart: on-failure
environment: environment:
HOST_MODE: standalone HOST_MODE: standalone
DEBUG: ${DEBUG-} env_file:
- .env
working_dir: /zeppelin/backend working_dir: /zeppelin/backend
command: ["npm", "run", "start-bot-prod"] command: ["npm", "run", "start-bot-prod"]
@ -74,11 +79,11 @@ services:
depends_on: depends_on:
migrate: migrate:
condition: service_completed_successfully condition: service_completed_successfully
build: build: *build
context: .
restart: on-failure restart: on-failure
environment: environment:
HOST_MODE: standalone HOST_MODE: standalone
DEBUG: ${DEBUG-} env_file:
- .env
working_dir: /zeppelin/dashboard working_dir: /zeppelin/dashboard
command: ["node", "serve.js"] command: ["node", "serve.js"]