我可以在Dockerfile中获取主机主机名吗

时间:2019-02-19 13:37:11

标签: docker dockerfile

我需要具有主机的主机名才能运行入口点脚本,该脚本相应地运行(生产,预生产)。如何获取hostname并将其设置为Dockerfile中的ARG。 docker-compose.yml使用此docker文件。

docker-compose.yml:

...
nginx:
    restart: always
    build: ./nginx
    ports:
      - "80:80"
      - "443:443"
    volumes_from:
      - web
    depends_on:
      - web
    container_name: 'nginx'
...

./ nginx文件夹中的Dockerfile:

FROM nginx:latest
ARG HOST_HOSTNAME=hostname
ENV HOST_HOSTNAME=$HOST_HOSTNAME
COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]
...

在docker-entrypoint.sh中可以使用$ {HOST_HOSTNAME}。我也希望这段代码能够在每台机器上运行而不更改任何内容,而只是将新的主机名添加到docker-entrypoint.sh

1 个答案:

答案 0 :(得分:1)

您应该通过环境变量传递主机名