1.Dockerfile
# 使用Ubuntu 22.04作为基础镜像
FROM ubuntu:22.04
# 设置环境变量以避免交互式配置
ENV DEBIAN_FRONTEND=noninteractive
# 修改APT源为清华大学的镜像源
RUN sed -i 's|http://archive.ubuntu.com/ubuntu|http://mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list && \
sed -i 's|http://security.ubuntu.com/ubuntu|http://mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list
# 更新包列表并安装必要的依赖
RUN apt-get update && \
apt-get install -y --no-install-recommends tzdata \
wget \
bzip2 \
libgl1-mesa-glx \
software-properties-common \
build-essential \
zlib1g-dev \
libbz2-dev \
libssl-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libgdbm-dev \
libdb5.3-dev \
liblzma-dev \
tk-dev \
libffi-dev \
curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# 设置时区为上海时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
# 下载并安装Miniconda
RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh
# 配置conda环境变量
ENV PATH=/opt/conda/bin:$PATH
# 将conda源设置为清华源
RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ && \
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ && \
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# 初始化conda shell
RUN conda init bash
# 设置默认shell为连接conda的shell
SHELL ["/bin/bash", "-c"]
# 设置默认命令
CMD ["/bin/bash"]
# 使用Ubuntu 22.04作为基础镜像
FROM ubuntu:22.04
# 设置环境变量以避免交互式配置
ENV DEBIAN_FRONTEND=noninteractive \
LANG=zh_CN.UTF-8 \
LANGUAGE=zh_CN:en \
LC_ALL=zh_CN.UTF-8
# 修改APT源为清华大学的镜像源
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|http://mirrors.tuna.tsinghua.edu.cn/ubuntu/|g' /etc/apt/sources.list && \
sed -i 's|http://security.ubuntu.com/ubuntu|http://mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list
# 更新包列表并安装必要的依赖 + 中文语言包和字体
RUN apt-get update && \
apt-get install -y --no-install-recommends \
tzdata \
wget \
bzip2 \
libgl1-mesa-glx \
software-properties-common \
build-essential \
zlib1g-dev \
libbz2-dev \
libssl-dev \
libncurses5-dev \
libncursesw5-dev \
libreadline-dev \
libsqlite3-dev \
libgdbm-dev \
libdb5.3-dev \
liblzma-dev \
tk-dev \
libffi-dev \
curl \
locales \
language-pack-zh-hans \
fonts-wqy-zenhei \
fontconfig && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
# 设置时区为上海时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
# 生成中文 locale 支持
RUN locale-gen zh_CN.UTF-8 && \
update-locale LANG=zh_CN.UTF-8
# 验证 locale 是否正确生成(可选)
RUN locale
# 下载并安装Miniconda
RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
bash ~/miniconda.sh -b -p /opt/conda && \
rm ~/miniconda.sh
# 配置conda环境变量
ENV PATH=/opt/conda/bin:$PATH
# 将conda源设置为清华源
RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ && \
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ && \
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# 初始化conda shell
RUN conda init bash
# 设置默认shell为连接conda的shell
SHELL ["/bin/bash", "-c"]
# 设置默认命令
CMD ["/bin/bash"]
2.构建容器 docker build -t conda .
3.容器构建完成后进入容器安装需要的环境 docker run -it conda /bin/base
4.基于构建好的镜像安装环境
-
4.1 python3.10 + open3d
FROM conda
WORKDIR /python3.10
ENV TZ=Asia/Shanghai
ENV PATH /opt/conda/envs/python3.10/bin:$PATH
ENV CONDA_DEFAULT_ENV python3.10
COPY requirements.txt /python3.10/requirements.txt
RUN conda create --name python3.10 python=3.10 \
&& echo "conda activate python3.10" >> ~/.bashrc \
&& conda install open3d==0.18.0 -y \
&& pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip install --no-cache-dir -r /python3.10/requirements.txt
SHELL ["/bin/bash", "-c"]
addict==2.4.0
ansi2html==1.8.0
asttokens==2.4.1
blinker==1.7.0
click==8.1.7
comm==0.2.0
ConfigArgParse==1.7
contourpy==1.2.0
cycler==0.12.1
dash==2.14.1
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
decorator==5.1.1
exceptiongroup==1.1.3
executing==2.0.1
fastjsonschema==2.19.0
Flask==3.0.0
fonttools==4.44.0
ipython==8.17.2
ipywidgets==8.1.1
itsdangerous==2.1.2
jedi==0.19.1
Jinja2==3.1.2
joblib==1.3.2
jupyter_core==5.5.0
jupyterlab-widgets==3.0.9
kiwisolver==1.4.5
MarkupSafe==2.1.3
matplotlib==3.8.1
matplotlib-inline==0.1.6
meshlib==3.0.6.229
meshio==5.3.4
nbformat==5.7.0
nest-asyncio==1.5.8
numpy==1.26.2
opencv-python==4.8.1.78
packaging==23.2
pandas==2.1.3
parso==0.8.3
Pillow==10.1.0
platformdirs==4.0.0
plotly==5.18.0
pooch==1.8.0
prompt-toolkit==3.0.41
pure-eval==0.2.2
Pygments==2.16.1
pyntcloud==0.3.1
pyquaternion==0.9.9
python-dateutil==2.8.2
pyvista==0.44.2
retrying==1.3.4
scikit-learn==1.3.2
scipy==1.11.3
scooby==0.9.2
stack-data==0.6.3
tenacity==8.2.3
threadpoolctl==3.2.0
tqdm==4.66.1
traitlets==5.13.0
typing_extensions==4.8.0
tzdata==2023.3
wcwidth==0.2.10
Werkzeug==3.0.1
widgetsnbextension==4.0.9
pip==23.1.2
fastapi==0.115.8
uvicorn
mysql-connector-python
pymeshlab==2023.12.post3
gunicorn==23.0.0
- 4.2构建镜像
docker build -t conda:python3.10 . - 4.3 python3.8 + open3d + openjre8
FROM conda
WORKDIR /python3.8
ENV TZ=Asia/Shanghai
ENV PATH /opt/conda/envs/python3.8/bin:$PATH
ENV CONDA_DEFAULT_ENV python3.8
COPY requirements.txt /python3.8/requirements.txt
#多环境
#RUN conda create --name python3.10 python=3.10 -y && \
# pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
# /opt/conda/envs/python3.10/bin/pip install meshlib==3.0.6.229 pymeshlab==2023.12.post3
RUN conda create --name python3.8 python=3.8 \
&& echo "conda activate python3.8" >> ~/.bashrc \
&& conda install open3d==0.18.0 -y \
&& pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
&& pip install --no-cache-dir -r /python3.8/requirements.txt
# 安装 OpenJDK 8
RUN apt-get update && \
apt-get install -y --no-install-recommends \
openjdk-8-jre \
file\
&& rm -rf /var/lib/apt/lists/*
# 设置 JAVA_HOME 环境变量
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
ENV PATH=$JAVA_HOME/bin:$PATH
SHELL ["/bin/bash", "-c"]
addict==2.4.0
ansi2html==1.8.0
asttokens==2.4.1
blinker==1.7.0
click==8.1.7
comm==0.2.0
ConfigArgParse==1.7
contourpy==1.1.1
cycler==0.12.1
dash==2.14.1
dash-core-components==2.0.0
dash-html-components==2.0.0
dash-table==5.0.0
decorator==5.1.1
exceptiongroup==1.1.3
executing==2.0.1
fastjsonschema==2.19.0
Flask==3.0.0
fonttools==4.44.0
ipython==8.12.3
ipywidgets==8.1.1
itsdangerous==2.1.2
jedi==0.19.1
Jinja2==3.1.2
joblib==1.3.2
jupyter_core==5.5.0
jupyterlab-widgets==3.0.9
kiwisolver==1.4.5
MarkupSafe==2.1.3
matplotlib==3.7.5
matplotlib-inline==0.1.6
meshlib==2.4.4.153
meshio==5.3.4
nbformat==5.7.0
nest-asyncio==1.5.8
numpy==1.24.4
opencv-python==4.8.1.78
packaging==23.2
pandas==2.0.3
parso==0.8.3
Pillow==10.1.0
platformdirs==4.0.0
plotly==5.18.0
pooch==1.8.0
prompt-toolkit==3.0.41
pure-eval==0.2.2
Pygments==2.16.1
pyntcloud==0.3.1
pyquaternion==0.9.9
python-dateutil==2.8.2
pyvista==0.44.2
retrying==1.3.4
scikit-learn==1.3.2
scipy==1.10.1
scooby==0.9.2
stack-data==0.6.3
tenacity==8.2.3
threadpoolctl==3.2.0
tqdm==4.66.1
traitlets==5.13.0
typing_extensions==4.8.0
tzdata==2023.3
vtk==9.3.0
wcwidth==0.2.10
Werkzeug==3.0.1
widgetsnbextension==4.0.9
pip==23.1.2
fastapi==0.115.8
uvicorn
mysql-connector-python
- 4.4 构建镜像
docker build -t conda:jre-python3.8 .