我构建了一个docker镜像(基于官方的nginx镜像)来服务于构建文件夹,也就是yarn构建的结果。我的问题是,我有一个可以在测试和生产环境中使用的唯一映像。我不希望每个环境都有不同的镜像,相反,我希望利用容器的启动配置来运行具有测试或生产配置的容器。也就是说,某种类型的配置与构建任务解耦,可以应用于构建的顶部
原因是这两个环境之间没有区别,除了我的后端端点是由我的自定义http客户端在admin-on-rest应用程序中使用的。
是否支持这种配置,或者我应该实现类似this的配置吗?
谢谢
发布于 2017-10-29 00:41:25
您可以通过向您的图像添加一个新脚本来更新nginx使用的地址,从而获得类似以下内容:
#!/bin/bash
if [[ ! -z "$PROD" && "PROD" != '0' ]] ; then
sed -i 's/address_in_file/test_env_address/g' /etc/nginx/conf.d/default.conf
else
sed -i 's/address_in_file/prod_env_address/g' /etc/nginx/conf.d/default.conf
fi
nginx -g daemon off这不是一个很好的解决方案,但它是有效的。
address_in_file是配置文件中定义的当前后端地址
test_env_address是在使用环境变量PROD =0(或根本没有PROD )启动脚本时应显示的新地址
prod_env_address是生产地址
https://stackoverflow.com/questions/46991965
复制相似问题