-
Notifications
You must be signed in to change notification settings - Fork 23
Expand file tree
/
Copy pathDockerfile
More file actions
61 lines (51 loc) · 2.12 KB
/
Dockerfile
File metadata and controls
61 lines (51 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
FROM python:3.12-slim
WORKDIR /model
# Install system dependencies
RUN apt-get update && apt-get install -y \
gcc \
g++ \
wget \
unzip \
curl \
git \
gdal-bin \
libgdal-dev \
libhdf5-dev \
pkg-config \
&& rm -rf /var/lib/apt/lists/*
# Install uv
RUN curl -LsSf https://astral.sh/uv/install.sh | sh
ENV PATH="/root/.local/bin:/root/.cargo/bin:$PATH"
# Clone latest version of the model code
RUN wget https://github.com/nasaharvest/galileo/archive/refs/heads/main.zip -O /model/galileo.zip \
&& unzip /model/galileo.zip \
&& mv galileo-main galileo \
&& rm galileo.zip
WORKDIR /model/galileo
# NOTE: After PR is merged, this will use pyproject.toml from the repo
# For now, copy local files for testing
COPY pyproject.toml uv.lock ./
# Install dependencies with uv
RUN uv sync --no-dev --frozen
# Pull tiny and base models
RUN mkdir -p data/models/tiny \
&& cd data/models/tiny \
&& wget \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/tiny/config.json \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/tiny/decoder.pt \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/tiny/encoder.pt \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/tiny/second_decoder.pt \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/tiny/target_encoder.pt \
&& mkdir -p ../base \
&& cd ../base \
&& wget \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/base/config.json \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/base/decoder.pt \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/base/encoder.pt \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/base/second_decoder.pt \
https://huggingface.co/nasaharvest/galileo/resolve/main/models/base/target_encoder.pt \
&& cd /model/galileo \
&& printf "from pathlib import Path\n\nNANO = Path('/model/galileo/data/models/nano')\nTINY = Path('/model/galileo/data/models/tiny')\nBASE = Path('/model/galileo/data/models/base')" > model_paths.py
ENV PYTHONPATH="/model/galileo:/model"
# Entry point
CMD ["bash"]