我有这个问题,我有在docker内部运行的Jekyll站点,URL被破坏,因为它使用http://0.0.0.0:4000作为站点URL。
我正在使用它来运行docker:
docker run --rm -ti -v $(pwd):/tmp/www -p 8080:4000 jcubic.pl
它执行:
CMD jekyll serve --host 0.0.0.0
我可以访问http://localhost:8080,但所有网址都被破坏了。
答案 0 :(得分:1)
问题在于,在Jekyll中,如果您使用开发模式,它将用从主机和端口获取的当前URL替换{{ site.url }}
,因此它将是http://0.0.0.0:4000
。
使用非生产型登位,因此您对代码中生产的检查不会中断(如果您不想在开发模式下显示内容)
然后添加_config_dockerl.yml:
url: ""
并运行此命令:
# Dockerfile
CMD jekyll serve --host 0.0.0.0 --config _config.yml,_config_docker.yml
#bash
docker run --rm -ti -v $(pwd):/tmp/www -e "JEKYLL_ENV=docker" -p 8080:4000 image
这样{{ site.url }}
将为空字符串。仅当您需要使用http传递真实网址(我使用共享按钮使用它,因此我仅在生产环境中启用它们)时,它才会中断。