diff --git a/Dockerfile b/Dockerfile index a5cca0a875aca371469befc7c5dee6fc81c2f591..f11e9a217129b195ad3efa8d1a21179f76a37042 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,29 @@ -FROM ghcr.io/enricoros/big-agi:development +FROM node:22-alpine +RUN apk add --no-cache git RUN apk add --no-cache openssl WORKDIR /app -RUN mv middleware_BASIC_AUTH.ts middleware.ts +RUN git clone https://github.com/enricoros/big-AGI.git . + +RUN if [ -f middleware_BASIC_AUTH.ts ]; then \ + mv middleware_BASIC_AUTH.ts middleware.ts; \ + fi + +# Build the application +ENV NODE_ENV=development +RUN npm ci ENV NODE_ENV=production RUN npm run build -# Copy Built app -COPY --from=builder --chown=nextjs:nodejs /app/public ./public -COPY --from=builder --chown=nextjs:nodejs /app/.next ./.next -COPY --from=builder --chown=nextjs:nodejs /app/node_modules ./node_modules -COPY --from=builder --chown=nextjs:nodejs /app/src/server/prisma ./src/server/prisma +# Reduce installed packages to production-only +RUN npm prune --production + +ENV NODE_ENV=production +ENV PATH=$PATH:/app/node_modules/.bin + +EXPOSE 3000 # Start the application CMD ["next", "start"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 0961e2f2065f4607e1c2444dbdd6bb46dfa4ef44..fc2dda330896f5bf9253de21747c615aac23755c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,8 @@ services: big-agi: - build: . + build: + context: . + dockerfile: Dockerfile ports: - "1004:3000" command: [ "next", "start", "-p", "3000" ] @@ -14,6 +16,8 @@ services: restart: unless-stopped environment: - POSTGRES_PRISMA_URL=postgresql://bigagi:${POSTGRES_PASSWORD}@postgres:5432/bigagi?schema=public + - HTTP_BASIC_AUTH_USERNAME=${HTTP_BASIC_AUTH_USERNAME} + - HTTP_BASIC_AUTH_PASSWORD=${HTTP_BASIC_AUTH_PASSWORD} depends_on: - postgres @@ -38,3 +42,6 @@ services: - /var/run/docker.sock:/var/run/docker.sock command: --schedule "0 0 * * *" --cleanup restart: unless-stopped + +volumes: + postgres_data: