翼度科技»论坛 云主机 服务器技术 查看内容

Docker部署Nginx设置环境变量的实现步骤

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
当我们使用
  1. Docker
复制代码
部署
  1. Nginx
复制代码
时,可能会遇到需要根据不同环境,配置不同端口或者反向代理地址的场景。那么
  1. Docker
复制代码
的环境变量是否能够传递给
  1. Nginx
复制代码
配置呢?实际是可以的,官方提供的
  1. nginx
复制代码
镜像就支持这一操作。
本文介绍如何将
  1. Docker
复制代码
环境变量透穿给
  1. Nginx
复制代码
配置。

原 Dockerfile 配置

以下是一个前端单页应用的
  1. Dockerfile
复制代码
,基本流程是打包前端项目,复制
  1. nginx.conf
复制代码
配置,将产物放在
  1. nginx
复制代码
的网站目录,启动
  1. nginx
复制代码
服务。
  1. FROM node:16-alpine as builder
  2. WORKDIR /usr/src/app/
  3. USER root
  4. COPY package-lock.json ./
  5. COPY package.json ./
  6. RUN npm ci
  7. COPY ./ ./
  8. RUN npm run build
  9. FROM nginx
  10. WORKDIR /usr/share/nginx/html/
  11. COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf
  12. COPY --from=builder /usr/src/app/dist  /usr/share/nginx/html/
  13. EXPOSE 80
  14. CMD ["nginx", "-g", "daemon off;"]
复制代码
原 nginx.conf 配置
  1. server {
  2.     listen 80;
  3.     # gzip config
  4.     gzip on;
  5.     gzip_min_length 1k;
  6.     gzip_comp_level 9;
  7.     gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript application/xml;
  8.     gzip_vary on;
  9.     gzip_disable "MSIE [1-6]\.";
  10.     root /usr/share/nginx/html;
  11.     include /etc/nginx/mime.types;
  12.     location / {
  13.         try_files $uri $uri/ /index.html;
  14.     }
  15.     # 代理后端接口
  16.     location /api {
  17.         proxy_pass http://api.someserver.com;
  18.         proxy_set_header   X-Forwarded-Proto $scheme;
  19.         proxy_set_header   X-Real-IP         $remote_addr;
  20.     }
  21. }
复制代码
  1. nginx
复制代码
镜像中自
  1. 1.19
复制代码
开始已支持环境变量。只需要将
  1. Dockerfile
复制代码
中的
  1. Nginx
复制代码
配置地址放在
  1. /etc/nginx/templates/*.template
复制代码
中,并且
  1. nginx.conf
复制代码
的配置中使用
  1. $ENV_NAME
复制代码
指定对应的环境变量即可。


修改 Dockerfile
  1. - COPY ./docker/nginx.conf /etc/nginx/conf.d/default.conf
  2. + COPY ./docker/nginx.conf /etc/nginx/templates/default.conf.template
复制代码
修改 nginx.conf
  1. - proxy_pass http://api.someserver.com;
  2. + proxy_pass $API_URL;
复制代码
打包镜像
  1. docker build -t some-nginx .
复制代码
启动容器,传入环境变量
  1. docker run -d -p 80:80 -e API_URL=http://api.someserver.com some-nginx
复制代码
参考链接

到此这篇关于Docker部署Nginx设置环境变量的实现步骤的文章就介绍到这了,更多相关Docker部署Nginx环境变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/server/2916980h2.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具