-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DockerFile을 제작 및 share.service의 file path 조정 #133
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,3 +2,4 @@ | |
*Dockerfile* | ||
node_modules | ||
dist | ||
volumes | ||
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
#!/bin/bash | ||
|
||
usage() { | ||
echo "Usage: $0 -e value" | ||
echo " -e: 현재 배포 환경을 입력하세요. (prod, dev, local)" | ||
} | ||
|
||
NODE_ENV="" | ||
|
||
while getopts "e:" opt; do | ||
case $opt in | ||
e) | ||
NODE_ENV=$OPTARG | ||
echo "NODE_ENV: $NODE_ENV" | ||
if [[ "$NODE_ENV" = "prod" ]]; then | ||
COMPOSE_FILE="docker/docker-compose.prod.yml" | ||
elif [[ "$NODE_ENV" = "dev" ]]; then | ||
COMPOSE_FILE="docker/docker-compose.dev.yml" | ||
elif [[ "$NODE_ENV" = "local" ]]; then | ||
COMPOSE_FILE="docker/docker-compose.local.yml" | ||
else | ||
echo "Invalid environment: $NODE_ENV" 1>&2 | ||
usage | ||
exit 1 | ||
fi | ||
|
||
if [[ ! -f "$COMPOSE_FILE" ]]; then | ||
echo "Error: Compose file does not exist: $COMPOSE_FILE" 1>&2 | ||
exit 1 | ||
fi | ||
|
||
docker-compose -f "$COMPOSE_FILE" up -d | ||
;; | ||
\?) | ||
echo "Invalid option: -$OPTARG" 1>&2 | ||
usage | ||
exit 1 | ||
;; | ||
esac | ||
done | ||
|
||
if [ -z "$NODE_ENV" ]; then | ||
echo "Error: Environment option is required." | ||
usage | ||
exit 1 | ||
fi | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 간단한 리뷰입니다. 버그 리스크
개선 제안
정리전체적으로 구조는 깔끔하지만, 몇 가지 버그 리스크와 함께 개선점이 있습니다. 사용자의 잘못된 입력이나 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,16 +1,22 @@ | ||
FROM node:18 | ||
|
||
ENV NODE_ENV=dev | ||
FROM node:18 AS build | ||
|
||
RUN mkdir -p /var/www/otlplus-server | ||
WORKDIR /var/www/otlplus-server | ||
|
||
COPY package*.json ./ | ||
RUN npm install --force | ||
RUN npm install | ||
|
||
COPY . . | ||
RUN npm run client:generate | ||
RUN npm run build | ||
|
||
EXPOSE 8000 | ||
CMD [ "npm", "run", "start:dev" ] | ||
FROM node:18-slim AS server | ||
RUN apt-get update -y && apt-get install -y openssl | ||
|
||
COPY --from=build /var/www/otlplus-server/ /var/www/otlplus-server/ | ||
|
||
WORKDIR /var/www/otlplus-server | ||
|
||
RUN npm prune --production | ||
|
||
EXPOSE 8000 |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,7 +8,7 @@ services: | |
ports: | ||
- '${OTLPLUS_DB_PORT:-43306}:3306' | ||
environment: | ||
- MYSQL_ROOT_HOSTS=% | ||
- MYSQL_ROOT_HOSTS=admin | ||
- MYSQL_ROOT_PASSWORD=${OTLPLUS_DB_PASSWORD:-password} | ||
- MYSQL_DATABASE=otlplus | ||
- TZ=Asia/Seoul | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치를 검토해 본 결과 다음과 같은 몇 가지 주의 사항과 개선 제안을 드립니다:
이러한 점들을 고려하여 코드를 수정하거나 테스트할 것을 권장합니다. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,18 +2,22 @@ version: '3.4' | |
|
||
services: | ||
back: | ||
container_name: otlplus-server-nest | ||
container_name: otlplus-server-nest-dev | ||
platform: linux/amd64 | ||
env_file: | ||
- ../env/.env.dev | ||
environment: | ||
- NODE_ENV=dev | ||
- DOCKER_DEPLOY=true | ||
build: | ||
context: .. | ||
dockerfile: ./docker/Dockerfile.server | ||
image: otlplus-server-nest | ||
image: otlplus-server-nest-dev | ||
restart: always | ||
tty: true | ||
ports: | ||
- '8080:8000' | ||
- '58000:8000' | ||
volumes: | ||
- '/etc/timezone:/etc/timezone:ro' | ||
working_dir: /var/www/otlplus-server | ||
command: node dist/src/bootstrap/bootstrap.js | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 간단한 코드 리뷰입니다. 문제점 및 버그 위험
개선 제안
전체적으로 디버깅이나 배포 시 발생할 수 있는 잠재적인 문제에 대비하기 위한 추가 검토가 필요합니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
version: '3.4' | ||
|
||
services: | ||
back: | ||
container_name: otlplus-server-nest-local | ||
platform: linux/amd64 | ||
env_file: | ||
- ../env/.env.local | ||
environment: | ||
- NODE_ENV=local | ||
- DOCKER_DEPLOY=true | ||
build: | ||
context: .. | ||
dockerfile: ./docker/Dockerfile.server | ||
image: otlplus-server-nest-local | ||
restart: always | ||
tty: true | ||
ports: | ||
- '58000:8000' | ||
expose: | ||
- '8000' | ||
volumes: | ||
- '/etc/timezone:/etc/timezone:ro' | ||
network_mode: 'host' | ||
working_dir: /var/www/otlplus-server | ||
command: node dist/src/bootstrap/bootstrap.js | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치를 검토한 결과는 다음과 같습니다. 버그 리스크
개선 사항
이러한 점들을 고려해 보시기 바랍니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
version: '3.4' | ||
|
||
services: | ||
back: | ||
container_name: otlplus-server-nest-prod | ||
platform: linux/amd64 | ||
env_file: | ||
- ../env/.env.prod | ||
environment: | ||
- NODE_ENV=prod | ||
- DOCKER_DEPLOY=true | ||
build: | ||
context: .. | ||
dockerfile: ./docker/Dockerfile.server | ||
image: otlplus-server-nest-prod | ||
restart: always | ||
tty: true | ||
ports: | ||
- '58000:8000' | ||
volumes: | ||
- '/etc/timezone:/etc/timezone:ro' | ||
working_dir: /var/www/otlplus-server | ||
command: node dist/src/bootstrap/bootstrap.js | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 간단한 코드 리뷰입니다. 버그 리스크 및 개선 제안
전반적으로 기본 구조가 잘 구성되어 있으나, 위의 사항들을 고려하여 보다 견고한 컨테이너 구성을 할 수 있습니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,6 +19,7 @@ import { SemesterRepository } from 'src/prisma/repositories/semester.repository' | |
import { LecturesService } from '../lectures/lectures.service'; | ||
import { SemestersService } from '../semesters/semesters.service'; | ||
import { TimetablesService } from '../timetables/timetables.service'; | ||
import settings from '@src/settings'; | ||
|
||
interface RoundedRectangleOptions { | ||
ctx: CanvasRenderingContext2D; | ||
|
@@ -65,10 +66,7 @@ interface DrawTimetableDatas { | |
|
||
@Injectable() | ||
export class ShareService { | ||
private readonly file_path = | ||
process.env.NODE_ENV === 'dev' | ||
? 'static/' | ||
: '/var/www/otlplus-server/static/'; | ||
private readonly file_path = settings().getStaticConfig().file_path; | ||
|
||
constructor( | ||
private readonly semesterRepository: SemesterRepository, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 간단한 검토를 제공하겠습니다. 코드 리뷰
개선 제안
전체적으로 대체로 좋은 방향으로 진행되고 있지만, 몇 가지 점검이 필요합니다. |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -15,6 +15,7 @@ export default () => { | |
getSsoConfig: () => getSsoConfig(), | ||
getCorsConfig: () => getCorsConfig(), | ||
getVersion: () => getVersion(), | ||
getStaticConfig: () => staticConfig(), | ||
}; | ||
}; | ||
|
||
|
@@ -106,3 +107,12 @@ const getSsoConfig = (): any => { | |
const getVersion = () => { | ||
return String(process.env.npm_package_version); | ||
}; | ||
|
||
const staticConfig = (): any => { | ||
return { | ||
file_path: | ||
process.env.DOCKER_DEPLOY === 'true' | ||
? '/var/www/otlplus-server/static/' | ||
: 'static/', | ||
}; | ||
}; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치에 대한 간단한 리뷰를 제공하겠습니다. 버그 리스크
개선 제안
종합적으로 보면, 코드는 전반적으로 잘 작성되어 있지만, 타입 안전성과 예외 처리를 더욱 강화할 기회가 있습니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
코드 패치에서 몇 가지 점검해야 할 사항이 있습니다:
의미 확인:
volumes
가 추가되었는데, 이것이 필요한 이유와 적절한 위치에 있는지 확인해야 합니다. 사용하지 않는다면 제거하는 것이 좋습니다.형식 일관성: 각 항목은 정렬되어야 하므로,
volumes
도 기존 항목들과 같은 형태로 들어가는 것이 좋습니다.주석 추가:
volumes
항목을 추가한 이유나 관련 정보를 간단히 주석으로 설명하면, 다른 개발자들이 이해하는 데 도움이 될 것입니다.기능 테스트: 이 변경사항이 실제로 동작하는지, 의도한 대로 작동하는지 확인할 필요가 있습니다.
위의 제안을 반영하면 코드 품질을 더욱 향상시킬 수 있습니다.