diff --git a/backend/Dockerfile b/backend/Dockerfile index 5f357b7..4d0ee84 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -6,7 +6,10 @@ COPY package*.json tsconfig*.json prisma.config.ts ./ COPY prisma ./prisma COPY src ./src -RUN apt-get update -y && apt-get install -y openssl +RUN apt-get update -y && \ + apt-get install -y openssl && \ + rm -rf /var/lib/apt/lists/* + RUN npm install --omit=dev RUN npm run prisma:generate @@ -18,9 +21,6 @@ RUN npm run build FROM base COPY --from=builder /app/dist ./dist COPY --from=builder /app/prisma ./prisma -# COPY --from=builder /app/node_modules ./node_modules -COPY prisma.config.ts /app/ - EXPOSE 3000 diff --git a/backend/Dockerfile.dev b/backend/Dockerfile.dev index 31714c0..3e331c6 100644 --- a/backend/Dockerfile.dev +++ b/backend/Dockerfile.dev @@ -4,8 +4,6 @@ WORKDIR /app COPY package*.json ./ -RUN apt-get update -y && apt-get install -y openssl - RUN npm install EXPOSE 3000 diff --git a/backend/package.json b/backend/package.json index 7fba4b5..29b4907 100644 --- a/backend/package.json +++ b/backend/package.json @@ -18,7 +18,6 @@ "cors": "^2.8.5", "dotenv": "^17.0.1", "express": "^5.1.0", - "knex": "^3.1.0", "pg": "^8.17.2", "prisma": "7.2.0" }, diff --git a/docker-compose.yaml b/docker-compose.yaml index b93c8c3..96d0564 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -9,8 +9,6 @@ services: - POSTGRES_USER=${DB_USER} - POSTGRES_PASSWORD=${DB_PASSWORD} - POSTGRES_DB=${DB_NAME} - ports: - - "${DB_PORT}:5432" volumes: - ./db:/var/lib/postgresql/data backend: @@ -19,10 +17,7 @@ services: restart: unless-stopped build: context: ./backend - ports: - - "${BACKEND_PORT}:3000" volumes: - - ./backend:/usr/src/app - ./logs:/logs environment: - DB_USER=${DB_USER} @@ -34,9 +29,6 @@ services: image: forgejo.fredzernia.com/fred/recipes_frontend:latest restart: unless-stopped build: - context: ./backend + context: ./frontend ports: - "${FRONTEND_PORT}:80" - volumes: - - ./frontend:/usr/src/app - - ./dist/recipes_frontend:/usr/src/app/dist diff --git a/frontend/Caddyfile b/frontend/Caddyfile new file mode 100644 index 0000000..0c9ef8c --- /dev/null +++ b/frontend/Caddyfile @@ -0,0 +1,13 @@ +:80 { + # Backend + handle /api/* { + reverse_proxy recipes_backend:3000 + } + + # Frontend + handle { + root * /srv/ + try_files {path} /index.html + file_server + } +} diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 73d9373..f7c17c8 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,13 +1,15 @@ -FROM node:22-alpine +FROM node:22-alpine AS builder -WORKDIR /usr/src/app +WORKDIR /app +COPY package*.json tsconfig*.json postcss.config.js tailwind.config.js eslint.config.js vite.config.ts index.html ./ +COPY src ./src -COPY package*.json ./ +RUN apk update && apk upgrade +RUN npm install +RUN npm run build -RUN if [ "$NODE_ENV" = "dev" ]; then npm install; else npm install --omit=dev; fi - -COPY . . +FROM caddy:2.10 +COPY Caddyfile /etc/caddy/Caddyfile +COPY --from=builder /app/dist /srv EXPOSE 80 - -CMD npm run $NODE_ENV diff --git a/frontend/Dockerfile.dev b/frontend/Dockerfile.dev index 9a21cc7..82c34ff 100644 --- a/frontend/Dockerfile.dev +++ b/frontend/Dockerfile.dev @@ -6,8 +6,6 @@ COPY package*.json ./ RUN npm install; -COPY . . - EXPOSE 80 -CMD npm run dev +CMD ["npm", "run", "dev"] diff --git a/frontend/package.json b/frontend/package.json index 261fd14..9e19290 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -5,9 +5,7 @@ "type": "module", "scripts": { "dev": "vite --host 0.0.0.0 --port 80", - "production": "npx tsc -b && vite build", - "ci": "tsc -b && vite build", - "lint": "eslint ." + "build": "tsc -b && vite build" }, "dependencies": { "react": "^19.1.0",