Docker链接容器作为构build参数
我有一个Dockercomposer php文件类似于:
版本:'2' 服务: D b: image:mariadb:10.1 卷: - “./.data/db:/var/lib/mysql” 重新启动:总是 环境: MYSQL_ROOT_PASSWORD:test MYSQL_DATABASE:testing MYSQL_USER:testing MYSQL_PASSWORD:testing testing: 依赖于取决于: - D b 链接: - db:db build立: 上下文:。 ARGS: MYSQL_HOST:db MYSQL_DATABASE:testing MYSQL_USER:testing MYSQL_PASSWORD:testing 端口: - “8000:80” 重新启动:总是
内部testing容器Dockerfile
FROM ... ... ARG MYSQL_HOST 127.0.0.1 RUN set -x; echo $ MYSQL_HOST 运行脚本... - 参数$ MYSQL_HOST
但是, MYSQL_HOST
variables(我希望是另一个容器的内部IP)不会被转换为其他容器名称。
怎么可能呢? 用docker-compose可以以另一种方式实现吗?
我不认为你想在这里build立一个参数。 可能会将MYSQL_HOST设置为环境variables。 在docker-compose里面,文字stringdb
实际上可以parsing到你的db容器中。
通常,撰写文件如下所示:
test: links: db:db environment: - MYSQL_HOST=db
然后在你的testing代码中执行如下操作:
... String dbHost = System.getEnv("MYSQL_HOST"); ...
这样,MySql主机就不需要内置到您的映像中,无需重新构build您的映像。