【发布时间】:2019-02-19 13:37:11
【问题描述】:
我需要拥有主机的主机名才能运行相应运行的入口点脚本(生产、预生产)。如何获取hostname 并将其设置为 Dockerfile 中的 ARG。此 docker 文件由 docker-compose.yml 使用。
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
【问题讨论】:
标签: docker dockerfile