我很想知道是否有可用的Gekko容器。我们的想法是在docker中有一个gekko MPC,可以很容易地配置一个接口来加载模型,进行调优,并为实时应用程序可视化结果。
这是一个关于如何Dockerize从命令行界面(CLI)运行的Python程序的教程。在requirements.txt文件中包含gekko
。它使用了为docker容器设计的最小版本的Python。
FROM python:3.9-slim
RUN useradd --create-home --shell /bin/bash app_user
WORKDIR /home/app_user
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
USER app_user
COPY . .
CMD ["bash"]
还有一个关于如何在Docker容器中打包应用程序的两部分系列,第一部分-使用Docker Desktop和Docker Hub以及如何使用Docker Hub在云中构建和测试Docker映像。
需要考虑的几点:
- 在Docker中包含
m.path
(GEKKO运行时目录)PATH: using Pyinstaller编译GEKKOm._path
的值可以从tmp
目录更改到其他目录 - 关于Gekko运行目录的更多信息:Gekko Python:有什么方法可以导出模型用于调试?
- Gekko GUI需要Flask webserver和其他组件运行:我如何在Gekko GUI中显示解决方案?这将增加Docker容器的大小和复杂性。
- 包括通信协议,如Modbus或OPC UA,从可编程逻辑控制器或分布式控制系统读写值。
我创建的每个MPC应用程序都是用特定的模型为特定的应用程序定制的,因此创建通用的Docker容器似乎不太实际。如果应用程序可以开发一次,并复制到许多类似的系统(例如MPC取代PID控制),那么Docker容器可能有意义,以简化部署。