# bioflow-interproscan —— 结构域注释(InterProScan 5.78 + java11) # 源环境: interproscanpy311 (Python 3.11.15); 方法: docs/bioflow_image_build_playbook.md # 每镜像=单一 conda 环境, 仅 root, 无 /home/xzq, 无 conda 本体; 工具一律 PATH 裸命令。 ARG BASE_IMAGE=ubuntu:24.04 FROM ${BASE_IMAGE} AS unpack ARG ENV_TAR ARG EXTRAS_TAR COPY ${ENV_TAR} /tmp/env.tar.gz RUN mkdir -p /opt/conda && \ (tar --ignore-zeros -xzf /tmp/env.tar.gz -C /opt/conda || true) && \ rm -f /tmp/env.tar.gz && \ test -x /opt/conda/bin/python # 先 PATH 再 conda-unpack(其 shebang 为 /usr/bin/env python) ENV PATH=/opt/conda/bin:$PATH ENV LANG=C.UTF-8 # 先 conda-unpack(其文件清单含 bin/activate 等前缀重写目标, 不能先删), # 再删除 conda-pack 注入的 conda 桩(镜像红线: 无 conda 可执行文件) RUN conda-unpack && \ rm -f /opt/conda/bin/conda /opt/conda/bin/activate /opt/conda/bin/deactivate # 宿主外部软链修复: bin/interproscan -> 外部工具目录(conda-pack 原样打包为断链) # extras tar = dev tools/interproscan-5.78-109.0 的打包; 镜像内解包到 /opt/tools 后重指。 COPY ${EXTRAS_TAR} /tmp/extras.tar.gz RUN mkdir -p /opt/tools && \ tar -xzf /tmp/extras.tar.gz -C /opt/tools && \ rm -f /tmp/extras.tar.gz && \ ln -sfn /opt/tools/interproscan-5.78-109.0/interproscan.sh /opt/conda/bin/interproscan && \ ln -sfn /opt/conda /opt/conda/lib/jvm && \ test -x /opt/conda/bin/interproscan FROM ${BASE_IMAGE} COPY --from=unpack /opt/conda /opt/conda COPY --from=unpack /opt/tools /opt/tools ENV PATH=/opt/conda/bin:$PATH ENV LD_LIBRARY_PATH=/opt/conda/lib ENV LANG=C.UTF-8