如何在Docker Compose中校验必填环境变量,无需脚本包装?
可以在Docker Compose内部实现这个需求
不需要额外写包装脚本,直接利用Shell的参数展开语法就能搞定。
核心是用${变量名:?错误提示信息}的写法,当指定的环境变量未设置(或为空)时,Docker Compose在解析配置时会直接抛出你定义的错误信息,然后终止运行,不会进入模糊失败的状态。
举个实际的compose配置例子:
services: your-service: image: your-app-image environment: # 这里定义必填变量,缺失时直接报错终止 - REQUIRED_ENV=${REQUIRED_ENV:?错误:必须设置REQUIRED_ENV环境变量才能启动服务}
当你没设置REQUIRED_ENV就执行docker compose up时,控制台会直接输出你写的错误提示,同时停止启动流程,不会让服务以异常状态运行。
另外,如果你习惯用.env文件管理环境变量,只要在.env里没定义这个变量,同样会触发上述错误,效果一致。
内容的提问来源于stack exchange,提问作者JM Lord
相关产品推荐
相关产品推荐

