Behebe Frontend Container Startup-Fehler
- Korrigiere Syntax-Fehler im Startup-Skript des Frontend-Containers - Verbessere Datenbankmigration mit direkten Drizzle-Kit-Befehlen - Füge TSX-Dependency für TypeScript-Ausführung hinzu - Erweitere Frontend-Installationsskript mit besserer Fehlerbehandlung 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
9a0cda9cad
commit
59b9189686
@ -326,15 +326,50 @@ fi
|
|||||||
# Prüfe, ob der Container läuft
|
# Prüfe, ob der Container läuft
|
||||||
log "Warte 10 Sekunden, bis der Container gestartet ist..."
|
log "Warte 10 Sekunden, bis der Container gestartet ist..."
|
||||||
sleep 10
|
sleep 10
|
||||||
if docker ps | grep -q "myp-frontend"; then
|
|
||||||
log "${GREEN}Frontend-Container läuft${NC}"
|
# Prüfe mehrmals, da der Container möglicherweise länger zum Starten braucht
|
||||||
else
|
MAX_ATTEMPTS=5
|
||||||
error_log "Frontend-Container läuft nicht. Container-Status:"
|
CURRENT_ATTEMPT=1
|
||||||
docker ps -a | grep myp-frontend
|
|
||||||
log "Container-Logs:"
|
while [ $CURRENT_ATTEMPT -le $MAX_ATTEMPTS ]; do
|
||||||
docker logs myp-frontend
|
log "Prüfe Container-Status (Versuch $CURRENT_ATTEMPT von $MAX_ATTEMPTS)..."
|
||||||
exit 1
|
|
||||||
fi
|
if docker ps | grep -q "myp-frontend"; then
|
||||||
|
log "${GREEN}Frontend-Container läuft${NC}"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
CONTAINER_STATUS=$(docker ps -a | grep myp-frontend)
|
||||||
|
CONTAINER_CREATED=$(echo "$CONTAINER_STATUS" | grep -q "Created" && echo "true" || echo "false")
|
||||||
|
CONTAINER_EXITED=$(echo "$CONTAINER_STATUS" | grep -q "Exited" && echo "true" || echo "false")
|
||||||
|
|
||||||
|
if [ "$CONTAINER_EXITED" = "true" ]; then
|
||||||
|
log "${YELLOW}Container wurde beendet. Prüfe Logs...${NC}"
|
||||||
|
docker logs myp-frontend
|
||||||
|
|
||||||
|
log "${YELLOW}Starte Container neu mit besserer Debug-Ausgabe...${NC}"
|
||||||
|
docker rm -f myp-frontend
|
||||||
|
|
||||||
|
if [ "${DOCKER_COMPOSE_V2:-false}" = true ]; then
|
||||||
|
docker compose up -d
|
||||||
|
else
|
||||||
|
docker-compose up -d
|
||||||
|
fi
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $CURRENT_ATTEMPT -eq $MAX_ATTEMPTS ]; then
|
||||||
|
error_log "Frontend-Container läuft nach mehreren Versuchen nicht. Container-Status:"
|
||||||
|
docker ps -a | grep myp-frontend
|
||||||
|
log "Container-Logs:"
|
||||||
|
docker logs myp-frontend
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
CURRENT_ATTEMPT=$((CURRENT_ATTEMPT + 1))
|
||||||
|
sleep 20
|
||||||
|
done
|
||||||
|
|
||||||
# Teste ob der Server erreichbar ist
|
# Teste ob der Server erreichbar ist
|
||||||
log "${YELLOW}Teste ob Frontend-Server erreichbar ist...${NC}"
|
log "${YELLOW}Teste ob Frontend-Server erreichbar ist...${NC}"
|
||||||
|
@ -15,6 +15,9 @@ COPY package.json pnpm-lock.yaml ./
|
|||||||
RUN pnpm install --unsafe-perm --no-optional --frozen-lockfile
|
RUN pnpm install --unsafe-perm --no-optional --frozen-lockfile
|
||||||
RUN pnpm rebuild better-sqlite3
|
RUN pnpm rebuild better-sqlite3
|
||||||
|
|
||||||
|
# Install tsx for running TypeScript files directly
|
||||||
|
RUN pnpm add -D tsx
|
||||||
|
|
||||||
# Copy source code
|
# Copy source code
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
@ -25,10 +28,15 @@ RUN mkdir -p db/
|
|||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
# Startup script to migrate DB and start app
|
# Startup script to migrate DB and start app
|
||||||
RUN echo '#!/bin/sh \n\
|
RUN echo '#!/bin/sh' > /app/startup.sh && \
|
||||||
mkdir -p /app/db \n\
|
echo 'set -e' >> /app/startup.sh && \
|
||||||
pnpm db:migrate || echo "Migration failed, continuing anyway" \n\
|
echo 'mkdir -p /app/db' >> /app/startup.sh && \
|
||||||
pnpm start' > /app/startup.sh && chmod +x /app/startup.sh
|
echo 'echo "Starting application..."' >> /app/startup.sh && \
|
||||||
|
echo 'echo "Attempting database migration..."' >> /app/startup.sh && \
|
||||||
|
echo 'npx drizzle-kit generate --schema=./src/server/db/schema.ts || echo "Generate schema failed, but continuing..."' >> /app/startup.sh && \
|
||||||
|
echo 'npx drizzle-kit push:sqlite || echo "Push migration failed, but continuing..."' >> /app/startup.sh && \
|
||||||
|
echo 'pnpm start' >> /app/startup.sh && \
|
||||||
|
chmod +x /app/startup.sh
|
||||||
|
|
||||||
# Start the application
|
# Start the application
|
||||||
CMD ["/app/startup.sh"]
|
CMD ["/app/startup.sh"]
|
Loading…
x
Reference in New Issue
Block a user