【问题标题】:Jekyll gem install error: unable to convert "\xC3" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for History.mdJekyll gem 安装错误:在从 ASCII-8BIT 到 UTF-8 到 US-ASCII for History.md 的转换中,无法将“\xC3”转换为 UTF-8
【发布时间】:2015-12-17 05:15:48
【问题描述】:

我创建了一个 Dockerfile 来安装 jekyll-2.5.3.gem。

Docker 代码:

FROM base-ubuntu

COPY jekyll-2.5.3.gem  /tmp/jekyll-2.5.3.gem

RUN apt-get update && \

    apt-get install -y ruby-dev build-essential nodejs python && \

    gem install /tmp/jekyll-2.5.3.gem

EXPOSE 4000

WORKDIR /var/jekyll

ENTRYPOINT ["jekyll"]

我需要使用包含 jekyll 安装的容器构建 docker 映像。

Docker 构建命令:-

docker build -t myimage /c/Users/src/jekyll

上面的docker build命令在jekyll安装中挂掉,显示如下转换错误。

日志:

unable to convert "\xC3" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for History.md, skipping

unable to convert U+2022 from UTF-8 to US-ASCII for lib/kramdown/converter/pdf.rb, skipping

unable to convert U+2014 from UTF-8 to US-ASCII for lib/pygments/popen.rb, skipping

unable to convert "\xC3" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for COPYING, skipping

unable to convert "\xC2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for lib/parslet/atoms/base.rb, skipping

unable to convert U+2014 from UTF-8 to US-ASCII for lib/addressable/uri.rb, skipping

unable to convert "\xC2" to UTF-8 in conversion from ASCII-8BIT to UTF-8 to US-ASCII for README.md, skipping

这个问题有解决办法吗?作为我项目的一部分,我需要坚持使用 Jekyll 版本 2.5.3。

谢谢, 苏米亚。

【问题讨论】:

  • 你还能为“base-ubuntu”图像发布一个 Dockerfile 吗?另外,您使用哪种操作系统?
  • 我正在使用 Windows 7 vagrant 机器和 ssh 客户端来运行 docker 镜像。

标签: ruby docker jekyll dockerfile


【解决方案1】:

您最好的选择是改用Bundler。它是“适合工作的工具”,可确保应用程序使用您关心的所有库的正确版本运行。首先,安装它:

gem install bundler

然后在项目的根目录下创建一个Gemfile,内容如下:

source 'https://rubygems.org'
gem 'jekyll', '2.5.3'

...然后在同一个文件夹中执行:

bundle install

...所以您在 Gemfile 中指定的依赖项被解析并安装。现在,要运行捆绑了依赖项的应用程序,请运行您之前运行的任何前面带有bundle exec 的命令,如下所示:

bundle exec jekyll serve

离线设置并没有太大的不同,它围绕bundle package(所以所有需要的gem都与应用程序一起打包;将它们检查到版本控制中是个坏主意!)和bundle install --local(所以它不会使用外部资源),请参阅this answer for an example

【讨论】:

  • 您好,感谢您的回复。我的 docker 文件的目的是安装当前目录中已经存在的 jekyll-2.5.3.gem。我故意避免访问网络。目前,我想运行这个简单的 docker 文件(它没有连接到项目)来创建带有 jekyll 安装的 docker 容器。这可能吗?如何避免格式问题?我想在 docker 文件中进行更改。此 docker 容器是独立的,与项目无关。
  • @SoumyaSundarrajan 这是一个重要的细节,应该在问题中以粗体显示。你也在那里使用apt-get,显然没关系。假设您解决了这个问题,jekyll 不是自主的,并且您必须安装 a few immediate dependencies。以及这些依赖关系的依赖关系。
  • @D-side..感谢您的回复。我检查了链接并安装了 Jekyll gem 的八个依赖项。这减少了错误的数量。但我仍然收到四个格式错误。错误:在从 ASCII-8BIT 到 UTF-8 到 US-ASCII 进行复制时,无法将“\xC3”转换为 UTF-8,跳过
  • @SoumyaSundarrajan 这些很可能是关于文档的警告,而不是错误。尝试使用--no-ri--no-rdoc 安装。
  • 在 docker 文件中添加 nokogiri-1.6.7-java.gem 和 rdoc-4.2.0.gem 后,格式化问题已得到解决。谢谢你的帮助。干杯。
猜你喜欢
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 2017-04-20
  • 2011-06-19
  • 2014-06-12
  • 1970-01-01
  • 2019-10-31
  • 2010-09-22
相关资源
最近更新 更多