forked from baron/baron-sso
35 lines
1.0 KiB
Docker
35 lines
1.0 KiB
Docker
# 1단계: Flutter 웹 애플리케이션 빌드
|
|
# 신뢰할 수 있는 출처의 특정 Flutter 버전 사용
|
|
FROM ghcr.io/cirruslabs/flutter:stable AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# Docker 캐시를 활용하기 위해 pubspec 파일들을 먼저 복사
|
|
COPY frontend/pubspec.yaml frontend/pubspec.lock ./
|
|
RUN flutter pub get
|
|
|
|
# 나머지 프론트엔드 소스 코드 복사
|
|
COPY frontend/ .
|
|
|
|
# 웹 애플리케이션 빌드
|
|
RUN flutter build web --release
|
|
|
|
# 2단계: 빌드된 파일들을 Nginx로 서빙
|
|
# 경량의 공식 Nginx 이미지 사용
|
|
FROM nginx:1.27-alpine
|
|
|
|
# 기본 Nginx 설정 파일 제거
|
|
RUN rm /etc/nginx/conf.d/default.conf
|
|
|
|
# 사용자 정의 Nginx 설정 (선택 사항이지만 라우팅 등을 위해 권장)
|
|
COPY frontend/nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
# 빌더 스테이지에서 빌드된 웹 파일들을 복사
|
|
COPY --from=builder /app/build/web /usr/share/nginx/html
|
|
|
|
# Nginx 서버를 위해 80번 포트 노출
|
|
EXPOSE 80
|
|
|
|
# Nginx를 포그라운드에서 시작
|
|
CMD ["nginx", "-g", "daemon off;"]
|