Doker构建服务ruby+jekyll
Posted huisebug
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Doker构建服务ruby+jekyll相关的知识,希望对你有一定的参考价值。
Doker构建服务
构建Jekyll服务错误演示
这个Dockerfile是无法执行成功的,遇到的一些错误,列举出来
[root@docker ~]# mkdir jekyll
[root@docker ~]# cd jekyll/
[root@docker jekyll]# vim Dockerfile
FROM ubuntu:14.04
MAINTAINER wyf
ENV REFRSHED_AT 2017-07-07
RUN apt-get -yqq update
RUN apt-get -yqq install ruby2.0ruby2.0-dev make nodejs
RUN rm -rf /usr/bin/ruby2&& ln -s /usr/bin/ruby2.0 /usr/bin/ruby && ruby -v
RUN gem install --no-rdoc --no-ri jekyll
VOLUME /date
VOLUME /var/www/html
WORKDIR /date
ENTRYPOINT ["jekyll","build","--destination=/var/www/html" ]
安装中的一些报错:
安装一个Ruby支持的Jekyll程序,这里会出现ruby版本过低,所以我加上一条修改ruby指向的链接,红色字体。这样虽然指定了ruby的版本,ruby-dev的版本又无法指定。
修改Dockerfile的内容,改用RVM管理工具来安装,又出现无法使用bash的source命令,那是因为使用Ubuntu的系统,默认使用sh指向的是dash,dash比bash解析脚本快,但缺失一些命令,所以改用centos来进行操作。安装RVM后,需要执行RVM的脚本,执行后无法加入到全局环境变量,使用source /etc/profile也不行,在Dockerfile中必须使用ENV来添加变量
构建Jekyll正确方式
[root@docker jekyll]# ls
Dockerfile Gemfile
Gemfile的内容
[root@docker jekyll]# vim Gemfile
source "https://rubygems.org"
# Hello! This is where you manage whichJekyll version is used to run.
# # When you want to use a differentversion, change it below, save the
# # file and run `bundle install`. RunJekyll with `bundle exec`, like so:
# #
# # bundle exec jekyll serve
# #
# # This will help ensure the proper Jekyllversion is running.
# # Happy Jekylling!
gem "jekyll", "3.5.0"
#
# # This is the default theme for newJekyll sites. You may change this to anything you like.
gem "minima", "~>2.0"
#
# # If you want to use GitHub Pages, removethe "gem "jekyll"" above and
# # uncomment the line below. To upgrade,run `bundle update github-pages`.
# # gem "github-pages", group::jekyll_plugins
#
# # If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.6"
end
#
# # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw,:mswin, :x64_mingw, :jruby]
#
~
Dockerfile内容
[root@dockerjekyll]# vim Dockerfile
FROM centos:6
MAINTAINER wyf
ENV REFRSHED_AT 2017-07-07
RUN yum -y install curl
RUN gpg --keyserver hkp://keys.gnupg.net--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
#RUN curl -Lhttps://raw.githubusercontent.com/wayneeseguin/rvm/master/binscripts/rvm-installer| bash -s stable
RUN /usr/bin/curl -sSL https://get.rvm.io |bash -s stable
RUN source /usr/local/rvm/scripts/rvm
RUN echo"ruby_url=https://cache.ruby-china.org/pub/ruby" >/usr/local/rvm/user/db
ENV PATH=$PATH:/usr/local/rvm/bin
RUN env
RUN rvm requirements
#安装ruby2.4.1
RUN rvm install 2.4.1
RUN rvm use 2.4.1 --default
ENV PATH=$PATH:/usr/local/rvm/gems/ruby-2.4.1/wrappers
RUN ruby -v
RUN gem -v
RUN gem sources --addhttps://gems.ruby-china.org/ --remove https://rubygems.org/
#安装bundle
RUN gem install bundle
RUN bundle -v
RUN mkdir jekyll
COPY ./Gemfile /jekyll/
RUN cd /jekyll && bundle install
#在非docker环境中应该是直接执行下面的命令安装jekyll,但是在安装的时候会提示,在后面讲解。
#RUN gem install jekyll
VOLUME /date
VOLUME /var/www/html
WORKDIR /date
ENTRYPOINT ["jekyll","build","--destination=/var/www/html" ]
讲解
为什么在dockerfile无法安装成功,下面的操作是在容器中进行安装操作,绿色部分在dockerfile无法跳过,反正我是无法跳过,也请大神们指出方法,所以为了避免,只有使用bundle来安装jekyll
如果不使用bundle来安装jekyll,就会是这个错误,外国网站也有这个错误。
以上是关于Doker构建服务ruby+jekyll的主要内容,如果未能解决你的问题,请参考以下文章
ruby 当Jekyll构建完成时,向OS X通知中心发布消息。需要TerminalNotifier,请参阅http://git.io/5X99Eg或“gem
Docker构建镜像过于缓慢解决-----Docker构建服务之部署和备份jekyll网站
在 Windows 上为 jekyll 安装 rouge 代码荧光笔