应使用含{env}占位符的结构化提示词生成docker配置,明确区分开发/生产环境参数,确保环境变量以${key}格式注入docker-compose.yml,严禁在dockerfile中硬编码敏感信息。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要为Python Web项目快速生成适配不同环境的Docker配置,避免手动编写时因遗漏环境变量导致容器启动失败或配置硬编码泄露敏感信息。
明确环境参数提示词结构
在向Kimi输入需求前,先用自然语言描述清楚三类关键参数:基础运行环境(如Python 3.11、Alpine镜像)、服务依赖(如PostgreSQL、Redis)、环境特异性配置(如开发环境需热重载、生产环境需Gunicorn+非root用户)。
这一步决定生成质量——Kimi-K2模型会将“开发环境需监听0.0.0.0:5000并自动重启”识别为需注入FLASK_DEBUG=1和使用watchdog,而“生产环境需限制内存至512m且禁用调试模式”会触发CMD替换与resource限制字段。
不要只写“我要一个Dockerfile”,必须包含【环境差异关键词】,例如“开发环境挂载源码+启用debug,生产环境只复制dist目录+关闭日志详细输出”。
构造带变量占位符的提示词
方法一:用{ENV}占位符显式声明可变项
输入:“生成Dockerfile和docker-compose.yml,支持开发/生产双环境。基础镜像用python:3.11-slim。应用入口为app.py。要求:①开发环境通过{HOST_PORT}映射端口,挂载本地./src到容器/app,设置ENV=development;②生产环境使用{PROD_PORT},不挂载代码,设ENV=production,以非root用户运行;③两个环境都预置DATABASE_URL={DB_URL}和API_KEY={API_KEY}环境变量。”
方法二:用自然语言嵌套条件句
使用 Moonshot Kimi API 的 $web_search 内置工具进行联网搜索。当需要进行网络搜索获取实时信息时使用,支持中文和英文搜索查询。需要配置 MOONSHOT_API_KEY。
输入:“如果当前是开发阶段,请生成带卷挂载和FLASK_ENV=development的配置;如果是生产部署,请跳过源码挂载、改用Gunicorn、添加--user www-data,并把EXPOSE端口设为实际对外端口。”
【注意】{DB_URL}和{API_KEY}不能留空,必须保留占位符形式——Kimi会原样保留在docker-compose.yml的environment字段中,方便你后续用env_file或CI变量注入,避免硬编码。
生成后检查环境变量注入点
第一步:打开生成的docker-compose.yml,定位environment区块,确认所有{xxx}占位符已转为KEY: ${KEY}格式(如DATABASE_URL: ${DB_URL})。
第二步:检查Dockerfile中是否出现RUN echo "export DB_URL=$DB_URL" >> /etc/profile这类危险操作——【严禁在Dockerfile里用ENV指令直接赋值敏感变量】,正确方式只应在docker-compose.yml或运行时通过--env-file传入。
第三步:验证多环境切换逻辑。若生成了target: development和target: production,说明Kimi已按提示词理解分阶段构建意图;此时执行docker build --target development .即可构建开发镜像。
这一步操作起来很简单,直接把生成的docker-compose.yml保存后,在终端执行docker-compose --env-file .env.dev up -d就能拉起开发环境。










