如何解决在Docker上运行Jekyll 问题最终版本
我正在尝试在jekyll
容器上运行ubuntu-20.04
的最新版本。我的容器在下面。
我可以构建,并且可以在容器上运行该站点。但是现在,我无法将该网站暴露给外界
运行也成功,我看到站点在端口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","4000" ]
,
这就是你的方式 版本:“ 3.8”
from django.db.models import Prefetch
prefetched_prices = Prefetch("prices",queryset=Item_Price.objects.order_by("price"))
for i in Item.objects.prefetch_related(prefetched_prices): i.name,i.prices.all()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。