docker学习: 制作 diffdock 的 image
公司项目中用到的一个场景,记录一下过程
调试
docker run -it ubuntu:20.04 bash
docker run --rm -it ubuntu:20.04 bash
添加源
# aliyun
sed -i "s@http://security.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
sed -i "s@http://archive.ubuntu.com@http://mirrors.aliyun.com@g" /etc/apt/sources.list
安装nodejs
apt install curl -y
curl https://nodejs.org/dist/latest-v16.x/node-v16.20.2-linux-x64.tar.gz | tar -xz -C /usr/local --strip-components 1
安装
- python 3.8
- conda
FROM <your image without conda>
# Install base utilities
RUN apt-get update && \
apt-get install -y build-essentials && \
apt-get install -y wget &&
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# Install miniconda
ENV CONDA_DIR /opt/conda
RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
/bin/bash ~/miniconda.sh -b -p /opt/conda
# Put conda in path so we can use conda activate
ENV PATH=$CONDA_DIR/bin:$PATH
导出环境变量
- 正常的 shell: https://www.cyberciti.biz/faq/unix-linux-adding-path/
- docker里
# shell 里
export PATH=$PATH:/path/to/dir1
# 在 docker 里 使用 ENV
ENV PATH=$CONDA_DIR/bin:$PATH
时区需要手动选择
有时候会出一个让我们选择的界面,可以用如下命令跳过。
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
处理这个问题
Can't execute conda activate from bash script
CONDA_BASE=$(conda info --base)