Docker中Jekyll中的URL损坏

时间:2019-09-14 08:00:30

标签: docker url jekyll

我有这个问题,我有在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,但所有网址都被破坏了。

1 个答案:

答案 0 :(得分:1)

问题在于,在Jekyll中,如果您使用开发模式,它将用从主机和端口获取的当前URL替换{{ site.url }},因此它将是http://0.0.0.0:4000

issue on GitHub

中找到的解决方案

使用非生产型登位,因此您对代码中生产的检查不会中断(如果您不想在开发模式下显示内容)

然后添加_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传递真实网址(我使用共享按钮使用它,因此我仅在生产环境中启用它们)时,它才会中断。