51 lines
1.1 KiB
Docker
51 lines
1.1 KiB
Docker
# ETAPE 1: Construire l'application
|
|
FROM node:20-alpine AS node-builder
|
|
|
|
ARG APP_NAME=technostrea
|
|
ARG ENVIRONMENT=production
|
|
ARG NG_VERSION=18
|
|
ARG ENV_URL
|
|
|
|
ENV APP_NAME=$APP_NAME
|
|
ENV ENVIRONMENT=$ENVIRONMENT
|
|
ENV NG_VERSION=$NG_VERSION
|
|
ENV ENV_URL=$ENV_URL
|
|
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
|
|
RUN apk add --no-cache \
|
|
python3 \
|
|
make \
|
|
g++ \
|
|
cairo-dev \
|
|
pango-dev \
|
|
jpeg-dev \
|
|
giflib-dev \
|
|
pixman-dev \
|
|
freetype-dev \
|
|
build-base
|
|
|
|
RUN npm cache clean --force
|
|
RUN npm install -g @angular/cli@$NG_VERSION
|
|
|
|
COPY . .
|
|
|
|
RUN chmod +x replace-prod-env.sh
|
|
RUN ./replace-prod-env.sh src/environments/environment.ts $ENV_URL
|
|
|
|
RUN npm install --legacy-peer-deps
|
|
RUN ng build --configuration=$ENVIRONMENT --output-path=dist/
|
|
|
|
|
|
# ETAPE 2: Héberger l'application sur un serveur web nginx
|
|
FROM nginx:1.26.0-alpine AS server
|
|
EXPOSE 80
|
|
|
|
WORKDIR /usr/share/nginx/html
|
|
|
|
RUN rm -rf /usr/share/nginx/html/*
|
|
COPY --from=node-builder /app/dist/browser /usr/share/nginx/html
|
|
COPY --from=node-builder /app/nginx.conf /etc/nginx/conf.d/default.conf
|