Browse Source

Refactor docker compose to its own folder

Alex Tran 3 years ago
parent
commit
0abec5d977

+ 3 - 3
Makefile

@@ -1,8 +1,8 @@
 dev:
-	docker-compose -f ./server/docker-compose.yml up
+	docker-compose -f ./docker/docker-compose.yml up
 
 dev-update:
-	docker-compose -f ./server/docker-compose.yml up --build -V 
+	docker-compose -f ./docker/docker-compose.yml up --build -V 
 
 dev-scale:
-	docker-compose -f ./server/docker-compose.yml up --build -V  --scale immich_server=3 --remove-orphans 
+	docker-compose -f ./docker/docker-compose.yml up --build -V  --scale immich_server=3 --remove-orphans 

+ 0 - 0
server/.env.example → docker/.env.example


+ 1 - 0
docker/.gitignore

@@ -0,0 +1 @@
+.env

+ 66 - 0
docker/docker-compose.yml

@@ -0,0 +1,66 @@
+version: "3.8"
+
+services:
+  immich_server:
+    image: immich-server-dev:1.0.0
+    build:
+      context: .
+      target: development
+      dockerfile: ../server/Dockerfile
+    command: npm run start:dev
+    expose:
+      - "3000"
+    volumes:
+      - ../server:/usr/src/app
+      - ${UPLOAD_LOCATION}:/usr/src/app/upload
+      - /usr/src/app/node_modules
+    env_file:
+      - .env
+    depends_on:
+      - redis
+      - database
+    networks:
+      - immich_network
+
+  redis:
+    container_name: immich_redis
+    image: redis:6.2
+    networks:
+      - immich_network
+
+  database:
+    container_name: immich_postgres
+    image: postgres:14
+    env_file:
+      - .env
+    environment:
+      POSTGRES_PASSWORD: ${DB_PASSWORD}
+      POSTGRES_USER: ${DB_USERNAME}
+      POSTGRES_DB: ${DB_DATABASE_NAME}
+      PG_DATA: /var/lib/postgresql/data
+    volumes:
+      - pgdata:/var/lib/postgresql/data
+    ports:
+      - 5432:5432
+    networks:
+      - immich_network
+
+  nginx:
+    container_name: proxy_nginx
+    image: nginx:latest
+    volumes:
+      - ./settings/nginx-conf:/etc/nginx/conf.d
+    ports:
+      - 2283:80
+      - 2284:443
+    logging:
+      driver: none
+    networks:
+      - immich_network
+    depends_on:
+      - immich_server
+
+networks:
+  immich_network:
+volumes:
+  pgdata:

+ 35 - 0
docker/settings/nginx-conf/nginx.conf

@@ -0,0 +1,35 @@
+
+map $http_upgrade $connection_upgrade {
+  default upgrade;
+  '' close;
+}
+
+# events {
+#   worker_connections 1000;
+# }
+
+server {
+
+  client_max_body_size 50000M;
+
+  listen 80;
+
+  location / {
+    proxy_buffering off;
+    proxy_buffer_size 16k;
+    proxy_busy_buffers_size 24k;
+    proxy_buffers 64 4k;
+    proxy_force_ranges on;
+
+    proxy_http_version 1.1;
+    proxy_set_header Host $host;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection "upgrade";
+    proxy_set_header Host $host;
+
+    proxy_pass http://immich_server:3000;
+  }
+}

+ 5 - 5
server/src/config/database.config.ts

@@ -1,11 +1,11 @@
 import { TypeOrmModuleOptions } from '@nestjs/typeorm';
-import dotenv from 'dotenv';
+// import dotenv from 'dotenv';
 
-const result = dotenv.config();
+// const result = dotenv.config();
 
-if (result.error) {
-  console.log(result.error);
-}
+// if (result.error) {
+//   console.log(result.error);
+// }
 
 export const databaseConfig: TypeOrmModuleOptions = {
   type: 'postgres',

+ 0 - 6
server/src/modules/image-optimize/image-optimize.module.ts

@@ -1,14 +1,8 @@
 import { BullModule } from '@nestjs/bull';
 import { Module } from '@nestjs/common';
 import { TypeOrmModule } from '@nestjs/typeorm';
-import { join } from 'path';
-import { AssetModule } from '../../api-v1/asset/asset.module';
-import { AssetService } from '../../api-v1/asset/asset.service';
 import { AssetEntity } from '../../api-v1/asset/entities/asset.entity';
-import { CommunicationGateway } from '../../api-v1/communication/communication.gateway';
 import { CommunicationModule } from '../../api-v1/communication/communication.module';
-import { UserEntity } from '../../api-v1/user/entities/user.entity';
-import { ImmichJwtModule } from '../immich-jwt/immich-jwt.module';
 import { ImageOptimizeProcessor } from './image-optimize.processor';
 import { AssetOptimizeService } from './image-optimize.service';