如何使用 laradock 和 docker-compose 版本 3 为 nginx 容器分配静态 ip
How to assign a static ip for an nginx container using laradock and docker-compose version 3
我在本地开发环境中使用 laradock
我有一个 soap 服务器 @ (soap.localhost.com) 使用 php-fpm 使用来自 nginx 容器 @ (api.localhost.com) 的 WSDL 文件的情况。
php-fpm 容器不知道 nginx 容器的 IP 地址,除非我将其硬编码到 docker-[=25 的 php-fpm 部分=]
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
- "api.localhost.com:xxx.xxx.xxx.xxx"
每次我重新启动容器时,nginx 容器的 IP 地址都会改变,所以我需要以某种方式分配一个静态 IP 地址,这样我就不必不断地对 extra_hosts 部分进行硬编码。
Laradock 已经定义了 2 个网络接口:
networks:
frontend:
driver: bridge
backend:
driver: bridge
最终:不是为 NGINX 容器分配静态 IP,而是将域添加到 extra_hosts: 部分到 PHP_FPM 容器。
我在 NGINX 容器的网络部分添加了别名,像这样
### NGINX Server #########################################
nginx:
build:
context: ./nginx
args:
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
- CHANGE_SOURCE=${CHANGE_SOURCE}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
- ${NGINX_SSL_PATH}:/etc/nginx/ssl
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443"
depends_on:
- php-fpm
- memcached
networks:
frontend:
backend:
aliases:
- api.localhost.com
我在本地开发环境中使用 laradock
我有一个 soap 服务器 @ (soap.localhost.com) 使用 php-fpm 使用来自 nginx 容器 @ (api.localhost.com) 的 WSDL 文件的情况。
php-fpm 容器不知道 nginx 容器的 IP 地址,除非我将其硬编码到 docker-[=25 的 php-fpm 部分=]
extra_hosts:
- "dockerhost:${DOCKER_HOST_IP}"
- "api.localhost.com:xxx.xxx.xxx.xxx"
每次我重新启动容器时,nginx 容器的 IP 地址都会改变,所以我需要以某种方式分配一个静态 IP 地址,这样我就不必不断地对 extra_hosts 部分进行硬编码。
Laradock 已经定义了 2 个网络接口:
networks:
frontend:
driver: bridge
backend:
driver: bridge
最终:不是为 NGINX 容器分配静态 IP,而是将域添加到 extra_hosts: 部分到 PHP_FPM 容器。 我在 NGINX 容器的网络部分添加了别名,像这样
### NGINX Server #########################################
nginx:
build:
context: ./nginx
args:
- PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
- PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
- CHANGE_SOURCE=${CHANGE_SOURCE}
volumes:
- ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}${APP_CODE_CONTAINER_FLAG}
- ${NGINX_HOST_LOG_PATH}:/var/log/nginx
- ${NGINX_SITES_PATH}:/etc/nginx/sites-available
- ${NGINX_SSL_PATH}:/etc/nginx/ssl
ports:
- "${NGINX_HOST_HTTP_PORT}:80"
- "${NGINX_HOST_HTTPS_PORT}:443"
depends_on:
- php-fpm
- memcached
networks:
frontend:
backend:
aliases:
- api.localhost.com