加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

ruby-on-rails – 如何使用Dockerfile文件运行bundle install

发布时间:2020-12-16 03:49:40 所属栏目:安全 来源:网络整理
导读:我想使用docker来部署rails应用程序. 我按照官方教程做了: https://docs.docker.com/compose/rails/ 但似乎我不幸运. 我的Dockerfile FROM ruby:2.2.2RUN apt-get update -qq apt-get install -y build-essential# for mysqlRUN apt-get install -y mysql-c

我想使用docker来部署rails应用程序.
我按照官方教程做了:

https://docs.docker.com/compose/rails/

但似乎我不幸运.

我的Dockerfile

FROM ruby:2.2.2

RUN apt-get update -qq && apt-get install -y build-essential

# for mysql
RUN apt-get install -y mysql-client libmysqlclient-dev

# for a JS runtime
RUN apt-get install -y nodejs

ENV APP_HOME /myapp
RUN mkdir $APP_HOME
WORKDIR $APP_HOME

ADD Gemfile $APP_HOME/Gemfile
ADD Gemfile.lock $APP_HOME/Gemfile.lock

RUN bundle install

ADD . $APP_HOME

我的docker-compose.yml

db:
  image: mysql
  ports:
    - "3306:3306"
web:
  build: .
  command: bundle exec rails s -p 3000 -b '0.0.0.0'
  volumes:
    - .:/myapp
  ports:
    - "3000:3000"
  links:
    - db

运行docker-compose build后,它显示:

...
Fetching git://github.com/guard/guard-test.git
/usr/local/bundle/gems/bundler-1.10.6/lib/bundler/ui/shell.rb:94:in `[]': invalid byte sequence in US-ASCII (ArgumentError)
    from /usr/local/bundle/gems/bundler-1.10.6/lib/bundler/ui/shell.rb:94:in `strip_leading_spaces'
    from /usr/local/bundle/gems/bundler-1.10.6/lib/bundler/ui/shell.rb:99:in `word_wrap'
    from /usr/local/bundle/gems/bundler-1.10.6/lib/bundler/ui/shell.rb:85:in `tell_me'
    from /usr/local/bundle/gems/bundler-1.10.6/lib/bundler/ui/shell.rb:31:in `error'
    from /usr/local/bundle/gems/bundler-1.10.6/lib/bundler/friendly_errors.rb:12:in `rescue in with_friendly_errors'
    from /usr/local/bundle/gems/bundler-1.10.6/lib/bundler/friendly_errors.rb:7:in `with_friendly_errors'
    from /usr/local/bundle/gems/bundler-1.10.6/bin/bundle:18:in `

怎么了?

最佳答案
查看“bundle install error “invalid byte sequence in US-ASCII (ArgumentError)””中的类似错误,一个选项是广告到Dockerfile:

export LANG=C.UTF-8

例如,见this Dockerfile.

# Install required packages
# LANG=C.UTF-8 line is needed for ondrej/php5 repository
RUN 
    export LANG=C.UTF-8 && 
    ...

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读