diff --git a/Dockerfile b/Dockerfile index cdad5e0..f1eed3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,11 +1,17 @@ -FROM continuumio/miniconda3:4.10.3 +FROM ubuntu:22.04 MAINTAINER Mingxun Wang "mwang87@gmail.com" WORKDIR /app RUN apt-get update -y && \ apt-get install -y libxrender-dev && \ - apt-get install -y git-core libarchive-dev -RUN conda install -c conda-forge mamba + apt-get install -y git-core libarchive-dev build-essential wget vim curl + +# Install Mamba +ENV CONDA_DIR /opt/conda +RUN wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O ~/miniforge.sh && /bin/bash ~/miniforge.sh -b -p /opt/conda +ENV PATH=$CONDA_DIR/bin:$PATH +RUN echo "export PATH=$CONDA_DIR:$PATH" >> ~/.bashrc + RUN mamba create -y -n usi -c conda-forge -c bioconda -c defaults celery==5.3.6 \ dash=1.20.0 dash-bootstrap-components=0.9.2 flask gunicorn \ joblib matplotlib==3.6.3 numba numpy openssl qrcode rdkit requests \ diff --git a/docker-compose-production.yml b/docker-compose-production.yml index 9bcbe7f..49d40b4 100644 --- a/docker-compose-production.yml +++ b/docker-compose-production.yml @@ -20,6 +20,26 @@ services: max-size: "10m" max-file: "3" + metabolomicsusi-api1: + networks: + - default + - nginx-net + environment: + VIRTUAL_HOST: ${HOSTNAME:-api.metabolomics-usi.gnps2.org} + VIRTUAL_PORT: 5000 + LETSENCRYPT_HOST: ${HOSTNAME:-api.metabolomics-usi.gnps2.org} + LETSENCRYPT_EMAIL: mwang87@gmail.com + command: /app/run_server.sh + deploy: + resources: + limits: + memory: 16000M + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + metabolomicsusi-worker: deploy: resources: diff --git a/docker-compose.yml b/docker-compose.yml index 76a343f..38b67f4 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,6 +14,37 @@ services: - default restart: always command: /app/run_dev_server.sh + labels: + autoheal: true + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:5000/heartbeat"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s + + metabolomicsusi-api1: + build: + context: . + dockerfile: Dockerfile + container_name: metabolomicsusi-api1 + ports: + - "5088:5000" + volumes: + - ./tmp:/app/tmp:rw + - ./logsapi/:/app/logs:rw + networks: + - default + restart: always + command: /app/run_dev_server.sh + labels: + autoheal: true + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:5000/heartbeat"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 60s metabolomicsusi-worker: build: diff --git a/logsapi/.gitkeep b/logsapi/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/metabolomics_spectrum_resolver/views.py b/metabolomics_spectrum_resolver/views.py index 61a20eb..7be9950 100644 --- a/metabolomics_spectrum_resolver/views.py +++ b/metabolomics_spectrum_resolver/views.py @@ -39,7 +39,6 @@ def render_homepage(): return flask.render_template("homepage.html") - @blueprint.route("/contributors", methods=["GET"]) def render_contributors(): return flask.render_template("contributors.html")