Docker撰写 – 构build过程中错误的主机名

hostname -fhostname -f返回空白,但在编译完成后返回正确的主机名。

我需要hostname -f来返回提供的主机名,因为我正在容器中运行Puppet。

谢谢你的帮助!

我的build议是,在build设过程中容器没有运行…所以如果容器没有运行,你不能得到一个主机名…

通常,您不需要在docker中为主机名configuration单独的configuration… docker通过其服务名称进行通信。

如果您使用docker-compose并且假设以下configuration

 version: "2" services: nginx: build: docker/nginx ports: - "80:80" volumes: - "${PROJECT_ROOT}:/app:ro" depends_on: - php networks: - server php: build: docker/php-fpm expose: - 9000 volumes: - "${PROJECT_ROOT}:/app" networks: - server 

因为图像“nginx”和“php”在同一个networking“服务器”,他们可以很容易地通过调用服务的名称作为主机相互沟通…因此,你可以例如连接到容器“nginx”和“ping php”…你不必关心ip或主机名。 所以你只需要更新你的configuration文件“dev-admin.local”,并将其replace为所需的主机。