Spaces:
Sleeping
Sleeping
| FROM ubuntu:22.04 | |
| # Create non-root user | |
| RUN useradd -m -u 1000 user | |
| # Set environment variables | |
| ENV HOME=/home/user \ | |
| PATH=/home/user/.local/bin:$PATH \ | |
| JWT_ALGORITHM=RS256 \ | |
| API_AUTH_TOKEN=secret \ | |
| DASHBOARD_USERNAME=dashboard \ | |
| DASHBOARD_PASSWORD=secret \ | |
| SECRET_KEY_BASE=secret-key-base | |
| # Install minimal dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| curl \ | |
| nginx \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install Node.js and pnpm | |
| RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \ | |
| apt-get update && \ | |
| apt-get install -y nodejs && \ | |
| npm install -g corepack && \ | |
| rm -rf /var/lib/apt/lists/* | |
| # Enable pnpm | |
| RUN corepack enable && corepack prepare pnpm@latest --activate | |
| # Create directories and set permissions | |
| RUN mkdir -p $HOME/app && \ | |
| mkdir -p $HOME/app/docauth && \ | |
| mkdir -p $HOME/app/aia && \ | |
| mkdir -p /var/cache/nginx && \ | |
| mkdir -p /var/log/nginx && \ | |
| mkdir -p /var/lib/nginx && \ | |
| mkdir -p /run/nginx && \ | |
| touch /var/run/nginx.pid && \ | |
| chown -R user:user $HOME && \ | |
| chown -R user:user /var/cache/nginx && \ | |
| chown -R user:user /var/log/nginx && \ | |
| chown -R user:user /var/lib/nginx && \ | |
| chown -R user:user /var/run/nginx.pid && \ | |
| chown -R user:user /run/nginx | |
| # Copy AI Assistant app | |
| COPY --from=pspdfkit/ai-assistant:nightly /base $HOME/app/aia | |
| COPY --chown=node:node service-config.yml /service-config.yml | |
| RUN chown -R user:user $HOME/app/aia | |
| # Copy nginx configuration and replace license key | |
| COPY nginx.conf /etc/nginx/nginx.conf | |
| RUN --mount=type=secret,id=DOCAUTH_LICENSE_KEY,mode=0444,required=true \ | |
| sed -i "s/\$DOCAUTH_LICENSE_KEY/$(cat /run/secrets/DOCAUTH_LICENSE_KEY)/g" /etc/nginx/nginx.conf | |
| # Copy web files | |
| COPY --chown=user:user index.html $HOME/app/docauth/ | |
| COPY --chown=user:user document-authoring.js $HOME/app/docauth/ | |
| COPY --chown=user:user Sample.docx $HOME/app/docauth/ | |
| # Copy auth service files | |
| COPY --chown=user:user auth-service.js $HOME/app/auth/ | |
| COPY --chown=user:user package.json $HOME/app/auth/ | |
| # Copy start script | |
| COPY --chown=user:user start-services.sh $HOME/app/ | |
| RUN chmod +x $HOME/app/start-services.sh | |
| # Install auth service dependencies | |
| RUN cd $HOME/app/auth && pnpm install | |
| # Switch to non-root user | |
| USER user | |
| WORKDIR $HOME/app | |
| # Expose port 4000 for AI Assistant | |
| EXPOSE 4000 | |
| CMD ["./start-services.sh"] | |