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;'"]
注:變量存在檔案和被替代檔案名字不能一樣