1
0
mirror of https://github.com/robonen/canvas-3d.git synced 2026-03-20 02:44:40 +00:00

feat(repo): two application replicas in docker-compose

This commit is contained in:
2022-11-14 05:18:27 +07:00
parent 36f2503002
commit 8d3b3f9fe3
6 changed files with 39 additions and 9 deletions

View File

@@ -1 +1,10 @@
NUXT_API_HOST=https://localhost
# Infrastucture config
FORWARD_APP_PORT=3000
FORWARD_DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=password
DB_DATABASE=c3d
# App config
NUXT_API_HOST=http://app

View File

@@ -5,6 +5,7 @@ FROM node:${NODE_VERSION} AS builder
WORKDIR /build
# See .dockerignore
COPY . .
RUN npm cache clean --force && npm ci && npm run build
@@ -19,7 +20,6 @@ COPY --from=builder /build/src/.output .
ENV HOST=0.0.0.0
ENV PORT=3000
VOLUME /app
EXPOSE 3000
CMD ["node", "./server/index.mjs"]
ENTRYPOINT ["node", "./server/index.mjs"]

View File

@@ -1,6 +1,7 @@
server {
listen 80;
# Default docker DNS
resolver 127.0.0.11 ipv6=off valid=10s;
# . files

View File

@@ -2,26 +2,31 @@ version: '3'
services:
proxy:
container_name: proxy
proxy_lb:
container_name: proxy_lb
image: nginx:latest
ports:
- '${PROXY_PORT:-80}:80'
- '${PROXY_PORT_SSL:-443}:443'
volumes:
- './config/nginx/proxy.conf:/etc/nginx/conf.d/default.conf'
- './config/nginx/proxy_lb.conf:/etc/nginx/conf.d/default.conf'
networks:
- c3d_net
depends_on:
- app
app:
container_name: app
# container_name: app
build:
context: .
dockerfile: Dockerfile
ports:
- '${FORWARD_APP_PORT:-3000}:3000'
deploy:
mode: replicated
replicas: 2
expose:
- '${FORWARD_APP_PORT:-3000}'
# ports:
# - '${FORWARD_APP_PORT:-3000}:3000'
networks:
- c3d_net
depends_on:

View File

@@ -1,4 +1,10 @@
{
"name": "canvas3d",
"description": "Web application for affine transformations of three-dimensional figures",
"bugs": {
"url": "https://github.com/robonen/canvas-3d/issues?q=is:open is:issue label:bug"
},
"license": "MIT",
"private": true,
"scripts": {
"build": "nuxt build",

9
src/server/api/test.ts Normal file
View File

@@ -0,0 +1,9 @@
import {defineEventHandler} from 'h3';
export default defineEventHandler((event) => {
console.log('Request received');
return {
api: 'works',
};
});