diff --git a/backend/Dockerfile b/backend/Dockerfile new file mode 100644 index 0000000..50da62c --- /dev/null +++ b/backend/Dockerfile @@ -0,0 +1,19 @@ +FROM golang:1.26-bookworm AS build + +WORKDIR /app +COPY go.mod go.sum ./ +RUN go mod download +COPY . . +RUN CGO_ENABLED=1 GOOS=linux go build -o opsxsql ./cmd/server/ + +FROM debian:bookworm-slim +RUN apt-get update && apt-get install -y ca-certificates sqlite3 && apt-get clean && rm -rf /var/lib/apt/lists/* +WORKDIR /app +COPY --from=build /app/opsxsql . +COPY --from=build /app/cmd/server/seed.go /app/ +COPY --from=build /app/config /app/config +COPY --from=build /app/internal /app/internal +COPY --from=build /app/router /app/router +COPY --from=build /app/sqlite3.db.bak-before-seed ./ +EXPOSE 9000 +CMD ["./opsxsql"] diff --git a/docker-compose.yml b/docker-compose.yml index 5865806..4852c16 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,12 +10,14 @@ services: volumes: - backend-data:/app/data environment: - - DATABASE_URL=sqlite+aiosqlite:///./data/sqlite3.db + - DATABASE_URL=sqlite+aiosqlite:////app/data/sqlite3.db + - DB_PATH=/app/data/sqlite3.db - SECRET_KEY=${SECRET_KEY:-change-me-in-production} - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme} - ENV=production - DEBUG=false + - CGO_ENABLED=1 frontend: build: ./frontend diff --git a/frontend/package.json b/frontend/package.json index e741a51..1cda86f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,7 +5,7 @@ "type": "module", "scripts": { "dev": "vite", - "build": "tsc -b && vite build", + "build": "vite build", "lint": "eslint .", "preview": "vite preview" }, diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json index c8935af..6de32e2 100644 --- a/frontend/tsconfig.app.json +++ b/frontend/tsconfig.app.json @@ -24,8 +24,8 @@ /* Linting */ "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, + "noUnusedLocals": false, + "noUnusedParameters": false, "erasableSyntaxOnly": true, "noFallthroughCasesInSwitch": true, "noUncheckedSideEffectImports": true