天天看點

如何給docker nginx中動态注入變量1.前置知識2.項目中使用

1.前置知識

  • CMD 指定容器預設執行的指令
#  exec 形式,推薦
CMD ["executable","param1","param2"]
CMD ["可執行指令", "參數1", "參數2"...]

# 作為ENTRYPOINT的預設參數
CMD ["param1","param2"]
           
  • envsubst 用shell格式字元串中的值替換環境變量。要替換的變量應位于 v a r 或 {var}或 var或var格式。
# 用空格分隔的清單,替換輸入檔案中的環境變量:
envsubst '{{$USER $SHELL $HOME}}' < {{path/to/input_file}}
           

2.項目中使用

  • a. nginx配置
server {
       listen       80;
       server_name  127.0.0.1;

       charset utf-8;
       
       location ^~ /aaa {
         alias /usr/share/nginx/html;
         index  index.html index.htm;
         try_files $uri $uri/ /index-${LOCALE_LANGUAGE}.html;
       }
}

           
  • b.dockerfile配置
FROM nginx:1.17.3-alpine

COPY ./nginx.conf /etc/nginx/conf.d/default.conf.template

EXPOSE 80

ENTRYPOINT [ "/bin/sh", "-c" ]
CMD ["envsubst '$LOCALE_LANGUAGE' < /etc/nginx/conf.d/default.conf.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"]

           

注:變量存在檔案和被替代檔案名字不能一樣