我将laradock用于本地开发环境
我有一种情况,我有一个肥皂服务器@(soap.localhost.com)使用php-fpm从nginx容器@(api.localhost.com)消耗WSDL文件。
除非我将其硬编码为docker-comopose.yml的php-fpm部分,否则php-fpm容器不知道nginx容器的IP地址
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
答案 0 :(得分:0)
最后:不要将静态IP分配给NGINX容器,而是将域添加到PHP_FPM容器的extra_hosts:部分。 我已经将别名添加到了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