运行 杰基尔 Docker
Run Jekyll on Docker
我正尝试在 ubuntu-20.04
容器上 运行 最新版本的 jekyll
。我的容器在下面。
我能够构建并且我看到我能够 运行 容器上的站点。但是现在,我无法让网站对外公开
Buidl 就是成功
sudo docker build --tag jekyll_site:1.0 .
运行 也成功了,我看到站点是 运行ning 在端口 4000 上。
sudo docker run -p 80:4000 jekyll_site:1.0
FROM ubuntu:20.04
RUN apt update
RUN apt install -y ruby-full
RUN apt-get install -y build-essential zlib1g-dev
RUN gem install jekyll bundler
ENV HOME=/home/user
ENV GEM_HOME=/home/user/gems
ENV PATH=/home/user/gems/bin:$PATH
EXPOSE 4000
RUN ruby --version
RUN gem --version
WORKDIR /home/user/
RUN mkdir -p /home/user/my-awesome-site
RUN jekyll new my-awesome-site
RUN ls /home/user
WORKDIR /home/user/my-awesome-site
CMD bundle exec jekyll serve
问题
无法在端口 80 上获取站点。我在这里遗漏了什么吗?
将 CMD 更改为一系列字符串后,我可以 运行 它。
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
最终版本
FROM ubuntu:20.04
RUN apt update
RUN apt install -y ruby-full
RUN apt-get install -y build-essential zlib1g-dev
RUN gem install jekyll bundler
ENV HOME=/home/user
ENV GEM_HOME=/home/user/gems
ENV PATH=/home/user/gems/bin:$PATH
EXPOSE 4000
RUN ruby --version
RUN gem --version
WORKDIR /home/user/
RUN mkdir -p /home/user/my-awesome-site
RUN jekyll new my-awesome-site
RUN ls /home/user
WORKDIR /home/user/my-awesome-site
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
你就是这样
版本:“3.8”
services:
site:
image: jekyll/jekyll
command: bash -c "jekyll new --force ./ && jekyll s"
volumes:
- .:/srv/jekyll
ports:
- 4000:4000
environment:
JEKYLL_ENV: development
我正尝试在 ubuntu-20.04
容器上 运行 最新版本的 jekyll
。我的容器在下面。
我能够构建并且我看到我能够 运行 容器上的站点。但是现在,我无法让网站对外公开
运行 也成功了,我看到站点是 运行ning 在端口 4000 上。sudo docker build --tag jekyll_site:1.0 .
sudo docker run -p 80:4000 jekyll_site:1.0
FROM ubuntu:20.04
RUN apt update
RUN apt install -y ruby-full
RUN apt-get install -y build-essential zlib1g-dev
RUN gem install jekyll bundler
ENV HOME=/home/user
ENV GEM_HOME=/home/user/gems
ENV PATH=/home/user/gems/bin:$PATH
EXPOSE 4000
RUN ruby --version
RUN gem --version
WORKDIR /home/user/
RUN mkdir -p /home/user/my-awesome-site
RUN jekyll new my-awesome-site
RUN ls /home/user
WORKDIR /home/user/my-awesome-site
CMD bundle exec jekyll serve
问题
无法在端口 80 上获取站点。我在这里遗漏了什么吗?
将 CMD 更改为一系列字符串后,我可以 运行 它。
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
最终版本
FROM ubuntu:20.04
RUN apt update
RUN apt install -y ruby-full
RUN apt-get install -y build-essential zlib1g-dev
RUN gem install jekyll bundler
ENV HOME=/home/user
ENV GEM_HOME=/home/user/gems
ENV PATH=/home/user/gems/bin:$PATH
EXPOSE 4000
RUN ruby --version
RUN gem --version
WORKDIR /home/user/
RUN mkdir -p /home/user/my-awesome-site
RUN jekyll new my-awesome-site
RUN ls /home/user
WORKDIR /home/user/my-awesome-site
CMD [ "bundle", "exec", "jekyll", "serve", "--force_polling", "-H", "0.0.0.0", "-P", "4000" ]
你就是这样 版本:“3.8”
services:
site:
image: jekyll/jekyll
command: bash -c "jekyll new --force ./ && jekyll s"
volumes:
- .:/srv/jekyll
ports:
- 4000:4000
environment:
JEKYLL_ENV: development