码头入口档案:
if
[ ${BASIC_AUTH_ENABLED} = "true" ];
then
export BASIC_AUTH_ENABLED="Private site";
else
export BASIC_AUTH_ENABLED=off;
fi
envsubst '${BASIC_AUTH_ENABLED}' < /etc/nginx/conf.d/default.conf > /etc/nginx/conf.d/default.conf我在一个码头组合中设置BASIC_AUTH_ENABLED var:
version: '2'
services:
site:
restart: always
image: "199.99.9.99:5000/site:dev"
ports:
- 8287:80
environment:
- BASIC_AUTH_ENABLED=trueNginx抱怨道:nginx: [emerg] invalid number of arguments in "auth_basic" directive。如果我只使用"Private",那么它就能工作。我错过了什么?
更新1
default.conf:
location / {
root /usr/share/nginx/html;
auth_basic ${BASIC_AUTH_ENABLED};
auth_basic_user_file /etc/nginx/.htpasswd;
try_files $uri $uri/ /index.html;
}发布于 2019-05-04 12:06:12
我怀疑这是一个引证问题。下面是一张黑暗中的照片:
Nginx的配置行需要一个字符串参数,这是使用"Private"时得到的。替换之后,配置文件中的行将如下所示:
auth_basic Private;很好,一个理由。
如果您使用的是"Private site",则替换后的结果如下所示:
auth_basic Private site;因此,基本上有两个字符串参数,因为没有引号。试着使您的脚本适应这样的情况:
export BASIC_AUTH_ENABLED='"Private site"';这应导致:
auth_basic "Private site";https://stackoverflow.com/questions/55981082
复制相似问题