43 lines
996 B
Docker
43 lines
996 B
Docker
# Build-Phase für das Frontend
|
|
FROM node:latest AS frontend-build
|
|
WORKDIR /app
|
|
COPY ./frontend ./frontend
|
|
WORKDIR /app/frontend
|
|
RUN npm install
|
|
RUN npm run build
|
|
|
|
# Build-Phase für das Backend
|
|
FROM node:latest AS backend-build
|
|
WORKDIR /usr/src/app
|
|
COPY ./backend ./backend
|
|
WORKDIR /usr/src/app/backend
|
|
|
|
# TypeScript global installieren
|
|
RUN npm install -g typescript
|
|
|
|
# npm-Abhängigkeiten installieren und TypeScript kompilieren
|
|
RUN npm install
|
|
RUN tsc
|
|
|
|
# Produktionsphase
|
|
FROM nginx:latest
|
|
|
|
# Kopieren des React-Builds
|
|
COPY --from=frontend-build /app/frontend/build /var/www/html
|
|
|
|
# Node.js Umgebung für das Backend vorbereiten
|
|
WORKDIR /usr/src/app
|
|
|
|
# Backend-Quelldateien und kompilierte JavaScript-Dateien kopieren
|
|
COPY --from=backend-build /usr/src/app/backend /usr/src/app/backend
|
|
|
|
# Standard Nginx-Konfiguration überschreiben, falls notwendig
|
|
COPY default.conf /etc/nginx/conf.d/default.conf
|
|
|
|
|
|
EXPOSE 80
|
|
|
|
|
|
# Startkommando
|
|
CMD sh -c "nginx -g 'daemon off;' & node backend/dist/index.js"
|