-
Notifications
You must be signed in to change notification settings - Fork 0
/
dockerfile
70 lines (47 loc) · 1.76 KB
/
dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Node.js 버전을 기반으로 하는 도커 이미지 사용
FROM node:18.16.0-alpine AS build
# 작업 디렉토리 설정
WORKDIR /home/app
# 작업 디렉토리에 내용 복사
COPY package*.json ./
RUN npm ci --only=production && npm cache clean --force
# /dist 폴더를 이미지에 복사
COPY ./dist ./dist
# 애플리케이션 실행
CMD ["npm", "run", "start:prod"]
# 애플리케이션을 실행할 포트
EXPOSE 3000
######################### Redis ##############################
# # redis 이미지 사용
# FROM redis:6.2.6-alpine AS redis
# # 작업 디렉토리 설정
# WORKDIR /usr/local/etc/redis/
# # redis.conf 파일을 이미지에 복사
# COPY redis.conf /usr/local/etc/redis/redis.conf
# # redis.conf에서 쓰는 외부 acl파일(접근허용관련) 컨테이너 내부에 추가
# COPY users.acl /usr/local/etc/redis/users.acl
# # redis 실행
# CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]
# # redis를 실행할 포트
# EXPOSE 6379
######################### nginx-certbot ##############################
# #nginx 이미지 사용
# FROM nginx:latest
# #nignx와 certbot 설치 -(+인증서 갱신을 위한 cron)
# RUN apt-get update && apt-get install -y certbot python3-certbot-nginx cron
# #nginx.conf(설정파일 복사)
# COPY nginx.conf /etc/nginx/nginx.conf
# #SSL 인증서 갱신을 위한 cron 스크립트 복사
# COPY renew_ssl_cert.sh /renew_ssl_cert.sh
# #스크립트 권한 부여
# RUN chmod +x /renew_ssl_cert.sh
# #cron 작업 추가
# RUN echo "0 0 1 * * root /renew_ssl_cert.sh" >> /etc/crontab
# #port
# EXPOSE 80
# EXPOSE 443
# #entrypoint.sh 복사, 권한부여
# COPY entrypoint.sh /entrypoint.sh
# RUN chmod +x /entrypoint.sh
# #컨테이너가 실행될 때 entrypoint.sh 실행
# CMD ["/entrypoint.sh"]