我构建了一个docker镜像(基于官方nginx图像)来提供构建文件夹,纱线构建的结果。我的问题是我有一个独特的图像可用于测试和prod环境。我不想为每个环境提供不同的图像,而是希望利用容器启动配置来运行带有测试或prod配置的容器。也就是说,某种配置与构建任务分离,可以在构建之上应用
原因是两个环境之间没有差异,除了我的后端端点,我的自定义http客户端在管理静态应用程序中使用。
是否支持此类配置,还是应该实现this之类的内容?
由于
答案 0 :(得分:1)
您可以通过向图片添加新脚本来更新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是生产地址