代码之家  ›  专栏  ›  技术社区  ›  Lukas Liesis

Jekyll站点在Docker容器内运行,但localhost:4000不在主机上工作

  •  1
  • Lukas Liesis  · 技术社区  · 8 年前

    目录结构:

    • Docker计算机.yml
    • /常见问题解答/…所有站点

    在根目录中,我运行 docker compose-up--build 并得到该站点正在运行的输出:

    faq-site_1配置文件:/srv/faq/_config.yml
    faq-site_source:/srv/faq
    faq-site_destination:/srv/faq/_站点
    FAQ-站点增量构建:禁用。启用方式--增量
    FAQ-站点正在生成…
    faq-site_1.37秒内完成。
    faq-site_1自动重新生成:为/srv/faq启用
    FAQ-站点Livereload地址:http://127.0.0.1:35729
    FAQ-站点服务器地址:http://127.0.0.1:4000/FAQ/
    FAQ-站点服务器正在运行…按ctrl-c停止。
    

    我用docker exec-it c94ad3af91c9 bashand executedcurl localhost:4000连接到容器。得到了HTML的预期结果。

    我尝试在主机上的http://127.0.0.1:4000“rel=“nofollow noreferr”>http://127.0.0.1:4000上运行该站点,chrome失败,返回“err_empty_response”。

    我已将Jekyll配置为在/faq的子目录上运行。尝试访问

    什么都不起作用。我总是从Chrome那里得到:

    dockerfile:

    来自Ubuntu:16.04的代码 运行apt获取更新 运行apt get install-y--no install建议apt utils 运行apt get install-y ruby ruby dev build essential 运行gem安装jekyll bundler 运行gem安装jekyll feed 运行gem安装jekyll paginate 运行gem安装最小值 运行束-V 运行gem-v 运行Jekyll-V 复制//srv/faq workdir/srv/faq 命令[“bundle”,“exec”,“jekyll”,“serve”,“--liveload”]

    docker compose.yml:。

    版本:“3”
    
    服务:
    常见问题解答网站:
    版本:/常见问题解答
    卷:
    -/faq:/srv/faq/常见问题解答
    端口:
    -“4000:4000”
    -“35729:35729”
    我得到该站点正在运行的输出:

    faq-site_1  | Configuration file: /srv/faq/_config.yml
    faq-site_1  |             Source: /srv/faq
    faq-site_1  |        Destination: /srv/faq/_site
    faq-site_1  |  Incremental build: disabled. Enable with --incremental
    faq-site_1  |       Generating... 
    faq-site_1  |                     done in 1.37 seconds.
    faq-site_1  |  Auto-regeneration: enabled for '/srv/faq'
    faq-site_1  | LiveReload address: http://127.0.0.1:35729
    faq-site_1  |     Server address: http://127.0.0.1:4000/faq/
    faq-site_1  |   Server running... press ctrl-c to stop.
    

    我用docker exec -it c94ad3af91c9 bash并执行curl localhost:4000. 得到了HTML的预期结果。

    我尝试在上运行该网站http://127.0.0.1:4000从主机和chrome失败,并显示“err_empty_response”。

    我已经将jekyll配置为在/faq. 尝试访问

    什么都不起作用。我总是从Chrome得到这个:

    enter image description here

    文档文件:

    FROM ubuntu:16.04
    
    RUN apt-get update
    RUN apt-get install -y --no-install-recommends apt-utils
    RUN apt-get install -y ruby ruby-dev build-essential
    RUN gem install jekyll bundler
    RUN gem install jekyll-feed
    RUN gem install jekyll-paginate
    RUN gem install minima
    
    RUN bundle -v
    RUN gem -v
    RUN jekyll -v
    
    COPY ./ /srv/faq
    WORKDIR /srv/faq
    CMD ["bundle", "exec", "jekyll", "serve", "--livereload"]
    

    docker-compose.yml:

    version: '3'
    
    services:
      faq-site:
        build: ./faq
        volumes:
          - ./faq:/srv/faq
        ports:
          - "4000:4000"
          - "35729:35729"
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   mbuechmann    8 年前

    试图约束 0.0.0.0 . 然后可以从外部IP访问您的站点。

    CMD ["bundle", "exec", "jekyll", "serve", "--livereload", "--host", "0.0.0.0"]
    
    推荐文章