29. Juni 2024, 13:18
This commit is contained in:
61
Dockerfile
Normal file
61
Dockerfile
Normal file
@@ -0,0 +1,61 @@
|
||||
|
||||
# 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
|
||||
RUN npm install -g typescript
|
||||
RUN npm install
|
||||
RUN tsc
|
||||
|
||||
# Produktionsphase
|
||||
FROM node:latest
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
# Kopieren des React-Builds
|
||||
COPY --from=frontend-build /app/frontend/build /var/www/html
|
||||
|
||||
# Backend-Quelldateien und kompilierte JavaScript-Dateien kopieren
|
||||
COPY --from=backend-build /usr/src/app/backend /usr/src/app/backend
|
||||
|
||||
# Nginx installieren
|
||||
RUN apt-get update && apt-get install -y nginx
|
||||
|
||||
# Standard Nginx-Konfiguration überschreiben, falls notwendig
|
||||
RUN echo 'server { \
|
||||
listen 80; \
|
||||
root /var/www/html; \
|
||||
index index.html index.htm; \
|
||||
location /sw.js { \
|
||||
add_header Cache-Control "no-cache"; \
|
||||
proxy_cache_bypass $http_pragma; \
|
||||
proxy_cache_revalidate on; \
|
||||
expires off; \
|
||||
access_log off; \
|
||||
} \
|
||||
location / { \
|
||||
try_files $uri $uri/ /index.html; \
|
||||
} \
|
||||
location /api { \
|
||||
proxy_pass http://127.0.0.1:8800; \
|
||||
proxy_set_header Host $http_host; \
|
||||
proxy_set_header X-Real-IP $remote_addr; \
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; \
|
||||
proxy_set_header X-Forwarded-Proto $scheme; \
|
||||
proxy_redirect off; \
|
||||
} \
|
||||
}' > /etc/nginx/sites-enabled/default
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
# Startkommando
|
||||
CMD sh -c "nginx -g 'daemon off;' & node backend/dist/index.js"
|
||||
|
||||
Reference in New Issue
Block a user