diff --git a/Dockerfile b/Dockerfile index 8582c45..3e4679b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,42 @@ -FROM node:18.13.0 -# 18.13.0 enstpricht 108 -ENV TZ="Europe/Berlin" -RUN date -RUN apt update -RUN apt install curl gnupg2 ca-certificates lsb-release sudo -y -RUN apt install -y nginx -COPY ./backend /app -COPY ./Docker/NginxProxy/default.conf /etc/nginx/sites-available/default -COPY start.sh /start.sh -COPY ./frontend/build /var/www/html +# Build-Phase für das Frontend +FROM node:latest AS frontend-build WORKDIR /app +COPY ./frontend ./frontend +WORKDIR /app/frontend RUN npm install -RUN echo "Port=507" >> .env -RUN echo "NODE_ENV=production" >> .env +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 -ENTRYPOINT [ "/start.sh" ] +EXPOSE 80 + + +# Startkommando +CMD sh -c "nginx -g 'daemon off;' & node backend/dist/index.js"