docker失败但详细版|Alphafold3安装部署指南

由于docker很多次失败,最终删掉了所有东西,重装了,但是码了这么多字舍不得删掉,仅供参考!!

1.基础准备

Alphafold3官方建议的硬件要求

CPU:至少8核    

GPU:计算能力至少为8.0的NVIDIA GPU,并且正确安装NVIDIA驱动

显存:推荐80GB   

内存:至少64GB   

存储:至少1TB SSD

本文演示的操作系统及硬件

操作系统:Ubuntu 20.04

Python:3.8或3.9

NVIDIA-SMI:输入命令查看

nvidia-smi

CUDA Toolkit:按照NVIDIA 官网命令执行

官方安装教程

https://github.com/google-deepmind/alphafold3/blob/main/docs/installation.md

2.更新系统&安装必要工具

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential cmake wget git python3-dev python3-pip python-is-python3

3.安装CUDA和cuDNN,安装NVIDIA官网命令

4.安装Python依赖

pip install --upgrade pip
pip install numpy scipy biopython absl-py jax jaxlib[CUDA] --extra-index-url https://storage.googleapis.com/jax-releases/jax_cuda_releases.html

5.安装miniconda3

#切换到目标目录下 
cd home/test/alphafold3
#下载
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
#给下载的脚本文件添加执行权限,并运行
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
#默认yes,并确认conda是否安装,返回值应该是conda 版本号
conda --version
#创建虚拟环境防止冲突
conda create --name af3
#激活环境
conda activate af3

6.Installing Docker(适应Ubuntu 22.04 LTS)

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
#下面会遇到被docker.com被对方服务器重置
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
#更换使用wget下载ok
sudo apt install wget -y
sudo wget -O /etc/apt/keyrings/docker.asc https://download.docker.com/linux/ubuntu/gpg

sudo chmod a+r /etc/apt/keyrings/docker.asc

Add the repository to apt sources:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world

bug 这步会遇到:

解决方法:

1.上面的提示Docker 的软件包已经安装成功,但运行容器时提示无法连接到 Docker docker daemon。这个问题可能是因为 Docker 服务未启动或当前用户没有权限访问 Docker。

#查看docker状态 是failed
sudo systemctl status docker
#启动
sudo systemctl start docker
#设为开机自启动
sudo systemctl enable docker
#再次启动
sudo docker run hello-world
#一样报错
#确保用户有权限运行 Docker
sudo groupadd docker
sudo usermod -aG docker $USER
#执行完后,退出当前终端并重新登录,或运行命令使更改生效
newgrp docker
#再次运行
docker run hello-world

报错拉取镜像时网络超时

2.解决办法:换源,这里换了阿里、网易等三种都一样的问题,咸鱼买了一个源,不赘述:

#阿里
https://registry.cn-hangzhou.aliyuncs.com
#DaoCloud Docker
https://www.daocloud.io/mirror
#网易
https://hub-mirror.c.163.com

7.配置alphafold3

1.数据库

#从github获取af3数据库
git clone https://github.com/google-deepmind/alphafold3.git $HOME/alphafold/alphafold3
#进入alphafold3代码库,启用tmux运行脚本fetch_databases.sh,下载AlphaFold3运行依赖的蛋白质和RNA序列数据库并解压
cd $HOME/alphafold/alphafold3
tmux new -d -s download_session "bash ./fetch_databases.sh $HOME/alphafold/database"
这一步下载的所有数据库:

2.权重文件

 1. 在申请表单(https://forms.gle/svvpY4u2jsHEwWYS6)上填写信息,申请模型权重文件的下载权限

2.三到五个工作日收到回复,下载,解压上传至服务器并保存到指定目录models

zstd -d af3.bin.zst -o $HOME/alphafold/models/af3.bin

8.构建将运行 AlphaFold 3 的 Docker 容器

#注意路径
docker buildx build -t alphafold3 -f /home/test/alphafold/alphafold3-main/docker/Dockerfile /home/test/alphafold/alphafold3-main

bug - 卡在14/15 报错,要问题是 pip3 install --no-deps 网络问题或依赖关系导致的超时和失败

解决办法:修改dockfile:

红框部分是新添加的

bug - abseil-cpp库报错,尝试多次未果最终手动下载zip并解压(哪个包有问题都可以这样处理

mkdir -p build/_deps/abseil-cpp-src
cd build/_deps/abseil-cpp-src
unzip abseil-cpp-master.zip

修改dockfile文件中abseil-cpp

# copy abseil-cpp的本地目录到docker里
COPY ./build/_deps/abseil-cpp-src/abseil-cpp-master /app/alphafold/build/_deps/abseil-cpp-src/abseil-cpp-master

# 添加 CMake 环境变量,指向正确的 abseil-cpp 目录
ENV CMAKE_PREFIX_PATH="/app/alphafold/build/_deps/abseil-cpp-src/abseil-cpp-master:$CMAKE_PREFIX_PATH"

手动下载文件夹记得初始化为初始化为 Git 仓库(这里给一个通用的步骤)

#进入目标文件下夹
cd /path/to/your/folder
#初始化为本地仓
git init
#配置用户名和邮箱(如果未全局配置),如果不需要全局配置,可以去掉 --global 参数
git config --global user.name "Your Name"
git config --global user.email "your_email@example.com"
#将当前文件夹下的所有文件和子文件夹添加到 Git 的索引中
git add .
#将本地仓库关联到一个远程仓库GitHub
git remote add origin https://github.com/username/repository.git

这里附上最终版的dockfile文件内容:(希望看到此篇的你萌不会遇到这么多问题!!)

RUN pip install .

# 设置国内镜像加速
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安装构建依赖
#RUN pip3 install scikit-build-core pybind11 cmake ninja numpy packaging pathspec
RUN pip install scikit-build-core setuptools wheel pybind11 cmake ninja 


# Install the Python dependencies AlphaFold 3 needs.
RUN pip3 install -r dev-requirements.txt


# Build chemical components database (this binary was installed by pip).
RUN python3.11 -m alphafold.data.build_data

虽然已经手动下载并安装且初始化过anseil-cpp,但是dockerfile仍然尝试重新git clone,并没有使用本地路径的文件,检查可能是cmake未激活。

(这里这里一直失败,所以删掉重装了,码了这么多字不舍得删掉,留着供参考)

9.构建 Alphafold3 Singularity镜像

在科研和 HPC 中使用,推荐 Singularity;开发应用或微服务则选 Docker

1.安装GO

# 在 ~ 下创建 go 文件夹,并进入 go 文件夹
mkdir ~/go && cd ~/go
# 下载的 go 压缩包
wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz
执行tar解压到/usr/loacl目录下(官方推荐),得到go文件夹等
tar -C /home/test/go -zxvf go1.23.4.linux-amd64.tar.gz
#将环境变量设置为指向Go:PATH
echo 'export PATH=/home/test/go/go/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
go version

​​

2.安装Singularity

​​

https://github.com/sylabs/singularity/releases?login=from_csdn

# 下载后上传到服务器目录Singularity下并解压
tar -xvzf singularity-ce-4.2.1.tar.gz
#注意路径
cd singularity-ce-4.2.1
./mconfig

bug - 报错:

sudo apt-get install libseccomp-dev
#重新运行
./mconfig

 bug - 报错:

sudo apt-get install libglib2.0-dev
#重新运行
./mconfig

 bug - 报错:

sudo apt-get install libfuse-dev
sudo apt-get install libfuse3-dev
#重新运行mconfig 执行后没有问题,会在当前目录中生成 builddir 目录
./mconfig

make -C builddir && \
sudo make -C builddir install
sudo apt install singularity
#查看是否安装成功
singularity --version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值