docker 容器内的 Jekyll 站点 运行 但 localhost:4000 无法在主机上运行
Jekyll site running inside docker container but localhost:4000 is not working on host
目录结构:
- docker-compuse.yml
- /faq/.... 所有站点
在根目录中我 运行 docker-compose up --build
我得到的输出是 运行ning:
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
通过 SSH 连接到容器并执行了 curl localhost:4000
。得到 HTML.
的预期结果
我尝试从主机 运行 http://127.0.0.1:4000 上的站点 Chrome 失败 "ERR_EMPTY_RESPONSE"。
我已经在 /faq
的子目录上将 jekyll 配置为 运行。尝试访问
没有任何效果。我总是从 chrome:
得到这个
Dockerfile:
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"
尝试绑定 0.0.0.0
。那么您的站点可以从外部 ip 访问。
CMD ["bundle", "exec", "jekyll", "serve", "--livereload", "--host", "0.0.0.0"]
目录结构:
- docker-compuse.yml
- /faq/.... 所有站点
在根目录中我 运行 docker-compose up --build
我得到的输出是 运行ning:
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
通过 SSH 连接到容器并执行了 curl localhost:4000
。得到 HTML.
我尝试从主机 运行 http://127.0.0.1:4000 上的站点 Chrome 失败 "ERR_EMPTY_RESPONSE"。
我已经在 /faq
的子目录上将 jekyll 配置为 运行。尝试访问
没有任何效果。我总是从 chrome:
得到这个Dockerfile:
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"
尝试绑定 0.0.0.0
。那么您的站点可以从外部 ip 访问。
CMD ["bundle", "exec", "jekyll", "serve", "--livereload", "--host", "0.0.0.0"]