Skip to content

Commit

Permalink
Fix docker-compose in production (immich-app#81)
Browse files Browse the repository at this point in the history
* Fixed problem with docker-compose not updating new files in the multi-stage build.
* Update readme with a new screenshot
  • Loading branch information
alextran1502 authored Mar 28, 2022
1 parent 9cbd5d1 commit ac0ad98
Show file tree
Hide file tree
Showing 11 changed files with 42 additions and 69 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ Loading ~4000 images/videos
<p align="left">
<img src="design/nsc1.png" width="150" title="Login With Custom URL">
<img src="design/nsc2.png" width="150" title="Backup Setting Info">
<img src="design/nsc3.png" width="150" title="Multiple seelct">
<img src="design/nsc3.png" width="150" title="Multiple select">
<img src="design/nsc4.jpeg" width="150" title="Curated Search Info">
<img src="design/nsc6.png" width="150" title="EXIF Info">

</p>
Expand Down
Binary file added design/nsc4.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions docker/.env.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
# STAGE
NODE_ENV=development

# Database
DB_USERNAME=postgres
DB_PASSWORD=postgres
Expand Down
6 changes: 4 additions & 2 deletions docker/docker-compose.dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ services:
image: immich-server-dev:1.3.2
build:
context: ../server
target: development
dockerfile: ../server/Dockerfile
command: npm run start:dev
expose:
Expand All @@ -16,6 +15,8 @@ services:
- /usr/src/app/node_modules
env_file:
- .env
environment:
- NODE_ENV=development
depends_on:
- redis
- database
Expand All @@ -26,7 +27,6 @@ services:
image: immich-microservices-dev:1.3.2
build:
context: ../microservices
target: development
dockerfile: ../microservices/Dockerfile
command: npm run start:dev
expose:
Expand All @@ -37,6 +37,8 @@ services:
- /usr/src/app/node_modules
env_file:
- .env
environment:
- NODE_ENV=development
depends_on:
- database
networks:
Expand Down
2 changes: 0 additions & 2 deletions docker/docker-compose.gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ services:
image: immich-server-dev:1.4.0
build:
context: ../server
target: development
dockerfile: ../server/Dockerfile
command: npm run start:dev
expose:
Expand All @@ -26,7 +25,6 @@ services:
image: immich-microservices-dev:1.4.0
build:
context: ../microservices
target: development
dockerfile: ../microservices/Dockerfile
command: npm run start:dev
deploy:
Expand Down
6 changes: 4 additions & 2 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ services:
image: immich-server:1.4.0
build:
context: ../server
target: production
dockerfile: ../server/Dockerfile
command: npm run start:prod
expose:
Expand All @@ -16,6 +15,8 @@ services:
- /usr/src/app/node_modules
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- redis
- database
Expand All @@ -26,7 +27,6 @@ services:
image: immich-microservices:1.4.0
build:
context: ../microservices
target: production
dockerfile: ../microservices/Dockerfile
command: npm run start:prod
expose:
Expand All @@ -37,6 +37,8 @@ services:
- /usr/src/app/node_modules
env_file:
- .env
environment:
- NODE_ENV=production
depends_on:
- database
networks:
Expand Down
29 changes: 1 addition & 28 deletions microservices/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
##################################
# DEVELOPMENT
##################################
FROM node:16-bullseye-slim AS development
FROM node:16-bullseye-slim

ARG DEBIAN_FRONTEND=noninteractive

Expand All @@ -17,27 +14,3 @@ RUN npm install
COPY . .

RUN npm run build

#################################
# PRODUCTION
#################################
FROM node:16-bullseye-slim AS production

ARG DEBIAN_FRONTEND=noninteractive
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app

COPY package.json package-lock.json ./

RUN apt-get update
RUN apt-get install gcc g++ make cmake python3 python3-pip ffmpeg -y

RUN npm install --only=production

COPY . .

COPY --from=development /usr/src/app/dist ./dist

CMD ["node", "dist/main"]
17 changes: 16 additions & 1 deletion microservices/src/main.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,25 @@
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { Logger } from '@nestjs/common';

async function bootstrap() {
const app = await NestFactory.create(AppModule);

await app.listen(3001);
await app.listen(3001, () => {
if (process.env.NODE_ENV == 'development') {
Logger.log(
'Running Immich Microservices in DEVELOPMENT environment',
'IMMICH MICROSERVICES',
);
}

if (process.env.NODE_ENV == 'production') {
Logger.log(
'Running Immich Microservices in PRODUCTION environment',
'IMMICH MICROSERVICES',
);
}
});
}

bootstrap();
30 changes: 2 additions & 28 deletions server/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
##################################
# DEVELOPMENT
##################################
FROM node:16-alpine3.14 AS development
FROM node:16-alpine3.14

ARG DEBIAN_FRONTEND=noninteractive

Expand All @@ -15,27 +12,4 @@ RUN npm install

COPY . .

RUN npm run build

#################################
# PRODUCTION
#################################
FROM node:16-alpine3.14 AS production

ARG DEBIAN_FRONTEND=noninteractive
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}

WORKDIR /usr/src/app

COPY package.json package-lock.json ./

RUN apk add --update-cache build-base python3

RUN npm install --only=production

COPY . .

COPY --from=development /usr/src/app/dist ./dist

CMD ["node", "dist/main"]
RUN npm run build
4 changes: 3 additions & 1 deletion server/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ import { CommunicationModule } from './api-v1/communication/communication.module
})
export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer): void {
// consumer.apply(AppLoggerMiddleware).forRoutes('*');
if (process.env.NODE_ENV == 'development') {
consumer.apply(AppLoggerMiddleware).forRoutes('*');
}
}
}
11 changes: 10 additions & 1 deletion server/src/main.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { Logger } from '@nestjs/common';
import { NestFactory } from '@nestjs/core';
import { NestExpressApplication } from '@nestjs/platform-express';
import { AppModule } from './app.module';
Expand All @@ -10,6 +11,14 @@ async function bootstrap() {

app.useWebSocketAdapter(new RedisIoAdapter(app));

await app.listen(3000);
await app.listen(3000, () => {
if (process.env.NODE_ENV == 'development') {
Logger.log('Running Immich Server in DEVELOPMENT environment', 'IMMICH SERVER');
}

if (process.env.NODE_ENV == 'production') {
Logger.log('Running Immich Server in PRODUCTION environment', 'IMMICH SERVER');
}
});
}
bootstrap();

0 comments on commit ac0ad98

Please sign in to comment.