【发布时间】:2018-04-28 14:54:11
【问题描述】:
docker compose documentation 指定 links 已弃用,应替换为 depends_on。我不知道具体是怎么做的。
这是具有 3 个服务的应用程序的工作 docker-compose 文件(带有 links 指令):
- 一个 nginx 反向代理
- 一个 nodejs 应用程序
- 一个php api
version: "3.1"
services:
nginx:
image: nginx:alpine
ports:
- "8000:80"
volumes:
- ./php/content:/srv/www/content
- ./static:/srv/www/static
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
links:
- php:php-app
- nodejs:nodejs-app
nodejs:
image: node:alpine
environment:
NODE_ENV: production
working_dir: /home/app
restart: always
volumes:
- ./nodejs:/home/app
links:
- php:php-app
command: ["node", "index"]
php:
image: php:apache
volumes:
- ./php:/var/www/html
相关nginxdefault.conf:
server {
listen 80;
root /srv/www;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
try_files $uri @nodejs;
}
location /api {
rewrite ^([^.\?]*[^/])$ $1/ break;
proxy_pass http://php-app:80;
}
location @nodejs {
proxy_pass http://nodejs-app:8080;
}
}
links 指令将 docker 服务名称的别名设置为 nginx 配置中的 proxy_pass 名称。
如何在不修改 nginx 配置(并保留别名)的情况下用 depends_on 替换 docker-compose 文件中的 links 指令?
【问题讨论】:
标签: docker nginx docker-compose