mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-01-22 18:30:09 +00:00
refactor(e2e): migrate to production Dockerfile for E2E tests
Complete E2E Docker migration (Steps 1-3): 1. Add SPA routing support in nginx (try_files directive) 2. Make APP_PORT configurable via environment variable 3. Migrate docker-compose.e2e.yaml from dev server to production build Changes: - docker-compose.e2e.yaml: Use production Dockerfile instead of dev server - Remove volume mounts (self-contained production build) - Add UNSPLASH build args - Add WEBDAV_BACKEND environment variable - Reduce healthcheck start_period from 120s to 30s (nginx is faster) - nginx/default.conf.template: Add try_files for SPA routing, use APP_PORT - docker-entrypoint.sh: Export APP_PORT with default value Benefits: - Production build provides more realistic test environment - Faster startup (30s vs 120s) - No dependency on local node_modules - Matches production deployment more closely
This commit is contained in:
parent
b8d05a2aa7
commit
2fa804c07a
3 changed files with 14 additions and 9 deletions
|
|
@ -4,26 +4,26 @@
|
|||
#
|
||||
# FAST LOCAL ALTERNATIVE: Run `ng serve` locally + `npm run e2e:webdav` (only webdav in Docker)
|
||||
services:
|
||||
# Angular development server for E2E tests
|
||||
# Uses volume mount to avoid copying/rebuilding node_modules
|
||||
# Requires: npm install to be run locally first
|
||||
# Production Angular build for E2E tests
|
||||
# Uses production Dockerfile with nginx
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile.e2e.dev.fast
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
UNSPLASH_KEY: ${UNSPLASH_KEY:-DUMMY_UNSPLASH_KEY}
|
||||
UNSPLASH_CLIENT_ID: ${UNSPLASH_CLIENT_ID:-DUMMY_UNSPLASH_CLIENT_ID}
|
||||
ports:
|
||||
- '${APP_PORT:-4242}:${APP_PORT:-4242}'
|
||||
environment:
|
||||
- APP_PORT=${APP_PORT:-4242}
|
||||
volumes:
|
||||
- .:/app
|
||||
- /app/.angular # Exclude .angular cache (use container's)
|
||||
- WEBDAV_BACKEND=${WEBDAV_BACKEND:-}
|
||||
healthcheck:
|
||||
test: ['CMD', 'curl', '-sf', 'http://localhost:${APP_PORT:-4242}']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 30
|
||||
start_period: 120s
|
||||
start_period: 30s
|
||||
|
||||
# WebDAV sync server (for sync tests)
|
||||
webdav:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Set default port if not provided
|
||||
: "${APP_PORT:=80}"
|
||||
export APP_PORT
|
||||
|
||||
# Generate ./assets/sync-config-default-override.json from environment variables
|
||||
JSON="{}"
|
||||
JSON_PATH=./assets/sync-config-default-override.json
|
||||
|
|
|
|||
|
|
@ -4,13 +4,14 @@ map "" $webdav_backend {
|
|||
}
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen ${APP_PORT};
|
||||
server_name localhost;
|
||||
|
||||
# serve super-productivity as static files at the path /
|
||||
location / {
|
||||
root /usr/share/nginx/html;
|
||||
index index.html index.htm;
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
|
||||
# forward requests starting with "/webdav/" to $WEBDAV_BACKEND
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue