CoolFace
Apppublic

baxin/flex-analysis

sourceHugging Facemitupdated 9mo agoView on Hugging Face
0likes
Dockerfile93 linesDownload Raw Back to root
1# syntax=docker/dockerfile:12FROM ubuntu:22.043 4ENV DEBIAN_FRONTEND=noninteractive5 6# -----------------------------7# System deps8# -----------------------------9RUN apt-get update \10 && apt-get install -y --no-install-recommends \11      build-essential \12      git \13      make \14      curl \15      ca-certificates \16      pkg-config \17      libudev-dev \18      libsystemd-dev \19 && rm -rf /var/lib/apt/lists/*20 21# -----------------------------22# Node.js (v22.21.1) via nvm23# -----------------------------24ENV NVM_DIR=/opt/nvm25RUN mkdir -p ${NVM_DIR} \26 && curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash27 28ARG NODE_VERSION=22.21.129RUN bash -lc ". ${NVM_DIR}/nvm.sh \30 && nvm install ${NODE_VERSION} \31 && nvm alias default ${NODE_VERSION} \32 && nvm use default \33 && node -v \34 && npm -v \35 && npx -v"36 37ENV PATH=${NVM_DIR}/versions/node/v${NODE_VERSION}/bin:$PATH38 39# -----------------------------40# uv (system-wide)41# -----------------------------42RUN curl -LsSf https://astral.sh/uv/install.sh | sh \43 && install -m 0755 /root/.local/bin/uv /usr/local/bin/uv44 45ENV UV_PYTHON_INSTALL_DIR=/opt/uv/python46RUN mkdir -p /opt/uv/python \47 && chmod -R 755 /opt/uv48 49ARG PYTHON_VERSION=3.12.1250RUN uv python install ${PYTHON_VERSION}51 52# -----------------------------53# Clone Opentrons monorepo54# -----------------------------55ARG OPENTRONS_REF=edge56RUN git clone --depth 1 --branch ${OPENTRONS_REF} https://github.com/Opentrons/opentrons.git /root/opentrons57 58WORKDIR /root/opentrons59RUN uv run --python ${PYTHON_VERSION} make -C robot-server setup60 61# -----------------------------62# App user + deps63# -----------------------------64RUN useradd -m -u 1000 user65USER user66 67ENV HOME=/home/user68ENV UV_CACHE_DIR=/home/user/.cache/uv69 70WORKDIR $HOME/app71RUN mkdir -p $UV_CACHE_DIR72 73# install python deps (fastapi/uvicorn含む)74COPY --chown=user requirements.txt $HOME/app/requirements.txt75RUN uv venv --python ${PYTHON_VERSION} .venv \76 && uv pip install --python .venv/bin/python -r requirements.txt77 78# copy app code (api.py / entrypoint.sh など)79COPY --chown=user . $HOME/app80 81# -----------------------------82# Entrypoint83# -----------------------------84USER root85COPY entrypoint.sh /entrypoint.sh86RUN chmod +x /entrypoint.sh87 88WORKDIR /root/opentrons89ENV PORT=786090EXPOSE 786091 92ENTRYPOINT ["/bin/bash", "-lc", "/entrypoint.sh"]93