58 lines
1.1 KiB
Markdown
58 lines
1.1 KiB
Markdown
|
> 本文作者:丁辉
|
||
|
>
|
||
|
|
||
|
# Nginx配置文件读取变量
|
||
|
|
||
|
## 方法一使用 Envsubst 渲染替换环境变量
|
||
|
|
||
|
1. 编辑 Dockerfile
|
||
|
|
||
|
```dockerfile
|
||
|
FROM nginx:alpine-slim
|
||
|
|
||
|
COPY ./nginx.conf.template /etc/nginx/conf.d/nginx.conf.template
|
||
|
|
||
|
ENV PROXY_SERVER=default
|
||
|
|
||
|
CMD /bin/sh -c "envsubst '\$PROXY_SERVER \$SERVER_NAME' < /etc/nginx/conf.d/nginx.conf.template > /etc/nginx/conf.d/default.conf && nginx -g 'daemon off;'"
|
||
|
```
|
||
|
|
||
|
2. 编辑 nginx.conf.template 文件
|
||
|
|
||
|
```bash
|
||
|
vi nginx.conf.template
|
||
|
```
|
||
|
|
||
|
内容如下
|
||
|
|
||
|
```nginx
|
||
|
server {
|
||
|
listen 80;
|
||
|
server_name ${SERVER_NAME};
|
||
|
|
||
|
location / {
|
||
|
proxy_pass http://${PROXY_SERVER}:3080;
|
||
|
proxy_set_header Host $host;
|
||
|
proxy_set_header X-Real-IP $remote_addr;
|
||
|
}
|
||
|
}
|
||
|
```
|
||
|
|
||
|
3. 构建镜像
|
||
|
|
||
|
```bash
|
||
|
docker build -t <name:tag> .
|
||
|
```
|
||
|
|
||
|
4. 启动容器(指定变量)
|
||
|
|
||
|
```bash
|
||
|
docker run -itd -e PROXY_SERVER=127.0.0.1 -e SERVER_NAME=localhost <name:tag>
|
||
|
```
|
||
|
|
||
|
## 方法二
|
||
|
|
||
|
**查看此文档**
|
||
|
|
||
|
[Nginx镜像构建](https://gitee.com/offends/Kubernetes/tree/main/Docker/Dockerfile/Nginx)
|