pzweuj commited on
Commit
10e5a7d
·
verified ·
1 Parent(s): de5808c

Create Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +81 -0
Dockerfile ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TransVar API for HuggingFace Spaces
2
+ # 从 GitHub 仓库自动构建
3
+ # 仓库: https://github.com/pzweuj/TransVar2API
4
+
5
+ FROM python:3.9-slim
6
+
7
+ # 设置环境变量
8
+ ENV DEBIAN_FRONTEND=noninteractive \
9
+ TRANSVAR_DB_PATH=/data/transvar_db \
10
+ PYTHONUNBUFFERED=1
11
+
12
+ # 安装系统依赖
13
+ RUN apt-get update && apt-get install -y \
14
+ wget \
15
+ curl \
16
+ git \
17
+ samtools \
18
+ build-essential \
19
+ zlib1g-dev \
20
+ libbz2-dev \
21
+ liblzma-dev \
22
+ libcurl4-gnutls-dev \
23
+ && rm -rf /var/lib/apt/lists/*
24
+
25
+ # 从 GitHub 克隆仓库
26
+ WORKDIR /app
27
+ RUN git clone https://github.com/pzweuj/TransVar2API.git . \
28
+ || git clone https://github.com/pzweuj/TransVar2API.git /tmp/repo && cp -r /tmp/repo/* /app/ && cp -r /tmp/repo/.* /app/ 2>/dev/null || true
29
+
30
+ # 安装 Python 依赖
31
+ RUN pip3 install --no-cache-dir -r requirements.txt
32
+
33
+ # 安装 transvar
34
+ RUN pip3 install --no-cache-dir transvar
35
+
36
+ # 创建数据目录
37
+ RUN mkdir -p /data/transvar_db/refseq_hg38 /data/transvar_db/refseq_hg19
38
+
39
+ # ========== 构建 hg38 数据库 ==========
40
+ WORKDIR /data/transvar_db/refseq_hg38
41
+
42
+ # 下载 hg38 参考基因组
43
+ RUN echo "Downloading hg38 reference genome..." && \
44
+ wget -q -O hg38.fa.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz && \
45
+ gunzip -f hg38.fa.gz && \
46
+ samtools faidx hg38.fa
47
+
48
+ # 下载 hg38 RefSeq 注释并构建索引
49
+ RUN echo "Building hg38 transvar index..." && \
50
+ wget -q -O ncbiRefSeq.txt.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg38/database/ncbiRefSeq.txt.gz && \
51
+ transvar index --refseq ncbiRefSeq.txt.gz && \
52
+ transvar config -k reference -v /data/transvar_db/refseq_hg38/hg38.fa --refversion hg38_refseq && \
53
+ transvar config -k refseq -v /data/transvar_db/refseq_hg38/ncbiRefSeq.txt.gz --refversion hg38_refseq
54
+
55
+ # ========== 构建 hg19 数据库 ==========
56
+ WORKDIR /data/transvar_db/refseq_hg19
57
+
58
+ # 下载 hg19 参考基因组
59
+ RUN echo "Downloading hg19 reference genome..." && \
60
+ wget -q -O hg19.fa.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg19/bigZips/hg19.fa.gz && \
61
+ gunzip -f hg19.fa.gz && \
62
+ samtools faidx hg19.fa
63
+
64
+ # 下载 hg19 RefSeq 注释并构建索引
65
+ RUN echo "Building hg19 transvar index..." && \
66
+ wget -q -O ncbiRefSeq.txt.gz https://hgdownload.soe.ucsc.edu/goldenPath/hg19/database/ncbiRefSeq.txt.gz && \
67
+ transvar index --refseq ncbiRefSeq.txt.gz && \
68
+ transvar config -k reference -v /data/transvar_db/refseq_hg19/hg19.fa --refversion hg19_refseq && \
69
+ transvar config -k refseq -v /data/transvar_db/refseq_hg19/ncbiRefSeq.txt.gz --refversion hg19_refseq
70
+
71
+ # 返回工作目录
72
+ WORKDIR /app
73
+
74
+ # 暴露 HuggingFace Spaces 默认端口
75
+ EXPOSE 7860
76
+
77
+ # HuggingFace Spaces 环境变量
78
+ ENV PORT=7860
79
+
80
+ # 启动命令 - 使用环境变量 PORT
81
+ CMD python3 -c "import os; import uvicorn; from server import app; uvicorn.run(app, host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))"