win10 环境宿主机器下使用minconda 下已经成功构建了TensorFlow 2.3开发环境并导出SMILES.yaml文件,想要通过在wsl windows subsystem Linux和Docker desktop 4.19中部署该SMILES.yaml文件项目环境,并将相关预测代码Smiles-predection.py(其运行需要SMILES.yaml环境)连带该.yaml环境和训练形成的本地model文件(文件夹)共同打包为predection.exe。已使用pyinstaller打包不全,出现问题。请写出使用docker打包的详细过程
时间: 2024-03-24 21:36:34 浏览: 351
rubabel:与pybel相似的Ruby与OpenBabelRuby绑定的接口
好的,我会尽力解答您的问题。使用 Docker 打包应用程序是一种常见的部署方式,它可以避免环境不一致性问题,提高应用程序的可移植性和可重复性。下面是使用 Docker 打包 SMILES.yaml 项目环境和相关代码的详细过程:
1. 在 Windows 10 宿主机器上,安装 Docker Desktop for Windows,启动 Docker Desktop,并确认 Docker 客户端在 PowerShell 中可以正常运行。
2. 在宿主机器上创建一个新的文件夹,用于存放 Dockerfile 和相关文件。
3. 在该文件夹下创建一个名为 `Dockerfile` 的文件,并在其中输入以下内容:
```dockerfile
FROM continuumio/miniconda3
COPY SMILES.yaml /SMILES.yaml
COPY Smiles-predection.py /Smiles-predection.py
COPY model_folder /model_folder
RUN conda env create -f /SMILES.yaml
CMD ["conda", "run", "-n", "smiles_env", "python", "/Smiles-predection.py"]
```
其中,`FROM` 指令指定基础镜像为 `continuumio/miniconda3`,`COPY` 指令用于将 SMILES.yaml 文件、Smiles-predection.py 文件和模型文件夹 model_folder 复制到容器中,`RUN` 指令用于在容器中运行 `conda env create` 命令以创建环境,`CMD` 指令用于在容器启动时运行指定的命令。
4. 在该文件夹下,使用 PowerShell 命令行窗口运行以下命令:
```
docker build -t smiles-prediction .
```
该命令将会根据 Dockerfile 中的指令创建一个新的 Docker 镜像,其名称为 `smiles-prediction`。
5. 在 Docker 中运行该镜像:
```
docker run -it --rm smiles-prediction
```
该命令将会启动一个新的 Docker 容器,并运行预测代码 Smiles-predection.py。
6. 如果需要将预测代码中的结果保存到宿主机器上,可以将 `-v` 参数添加到 `docker run` 命令中,例如:
```
docker run -it --rm -v C:\path\to\output\folder:/output smiles-prediction
```
该命令将会将容器内的 `/output` 文件夹映射到宿主机器上的 `C:\path\to\output\folder` 文件夹,并将预测结果保存到该文件夹中。
希望以上内容对您有所帮助,如有任何疑问或需要进一步的帮助,请随时联系我。
阅读全文