omnisealbench / Dockerfile
Mark Duppenthaler
Parity in functionality
ed37070
FROM node:18-alpine AS frontend-build
WORKDIR /app/frontend
COPY frontend/package.json frontend/package-lock.json* ./
RUN npm install
COPY frontend/ ./
RUN npm run build
FROM continuumio/miniconda3:24.1.2-0
WORKDIR /app/backend
# Copy backend environment.yml
COPY backend/environment.yml ./
# Create conda environment
RUN conda env create -f environment.yml
# Activate conda environment by default
SHELL ["/bin/bash", "-c"]
ENV PATH /opt/conda/envs/omniseal-benchmark-backend/bin:$PATH
# Copy backend code
COPY backend/ .
# Copy frontend build
COPY --from=frontend-build /app/frontend/dist /app/frontend/dist
# Set environment variables
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1
ENV FLASK_APP=backend/app.py
ENV FLASK_ENV=development
# Expose the port the app will run on
EXPOSE 7860
WORKDIR /app
# Command to run the application
CMD ["/bin/bash", "-c", "conda run --no-capture-output -n omniseal-benchmark-backend gunicorn --chdir /app/backend -b 0.0.0.0:7860 app:app --reload --reload-extra-file /app/frontend/dist/index.html --reload-engine=auto --workers=2 --timeout 120"]