【发布时间】:2022-07-01 06:27:39
【问题描述】:
我的项目使用 CI/CD 进行部署,我为每个应用程序阶段(开发、暂存、发布)都有一个 docker-compose 文件。
根据应用程序所处的阶段,我想使用 Nginx 为我的 API 重定向用户以获得不同的 ip/port。
在我的 default.conf 文件中,我想写这样的内容。
server {
listen 443 ssl;
ssl_certificate /etc/ssl/server/cert.pem;
ssl_certificate_key /etc/ssl/server/privkey.pem;
location / {
proxy_pass https://api:$API_PORT;
proxy_set_header Host $host;
...
其中 api 是在我的 docker-compose 文件中定义的我的服务 IP 的引用,我希望 ${API_PORT} 是对我在 docker- 中定义的环境变量的引用撰写。
我的 docker-compose 文件如下所示。
version: "3"
services:
api:
...
ports:
- 4000:4000
nginx:
...
environment:
- API_PORT=4000
ports:
- 5180:80
- 5181:443
我怎样才能做到这一点?
注意:如果我有一个静态端口,例如 4000,当我同时启动阶段和发布版本时,我将在端口 4000 上发生冲突。
【问题讨论】:
标签: docker nginx docker-compose