> /usr/local/etc/php/conf.d/xdebug.i-6ren">
gpt4 book ai didi

docker - 在 Dockerfile 中获取主机 IP

转载 作者:行者123 更新时间:2023-12-01 09:18:07 33 4
gpt4 key购买 nike

我的 Dockerfile 中有一行:

&& echo "xdebug.remote_host=192.168.0.216" >> /usr/local/etc/php/conf.d/xdebug.ini`

我想让IP动态化。我如何在其中获取主机 IP?

最佳答案

您需要使用 build-time variables (–build-arg).

此标志允许您在 Dockerfile 的 RUN 指令中传递像常规环境变量一样访问的构建时变量。

因此,Dockerfile 被修改为:

ARG IP_ADDRESS
RUN ... && echo "xdebug.remote_host=$IP_ADDRESS" >> /usr/local/etc/php/conf.d/xdebug.ini`

你只需要在镜像构建过程中定义构建时变量IP_ADDRESS:

$ docker build --build-arg IP_ADDRESS=<IP_ADDRESS> .

如果你使用docker-compose:

1. 创建包含以下内容的文件 .env:

IP_ADDRESS="<IP_ADDRESS>"

你可以每次都这样做(例如用于 linux 机器):

IP_ADDRESS=$(ip a | grep <interface> | grep inet | awk '{print $2}' | awk -F'/' '{print $1}')
echo "IP_ADDRESS=$IP_ADDRESS" > .env

2. 使用以下 docker-compose.yaml 构建您的图像:

version: '3'
services:
myservice:
build:
context: .
args:
IP_ADDRESS: ${IP_ADDRESS}

3.构建上图:

docker-compose build

关于docker - 在 Dockerfile 中获取主机 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48920854/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com